起動時に実行したいスクリプトがありますが、実行時に起動プロセスを一時停止したいと思います。
私はsystemdサービスを試しました
[Unit]
Description=setup script
Before=default.target
[Service]
Type=oneshot
ExecStart=/my/setup/script
[Install]
WantedBy=default.target
ただし、これにより起動プロセスが続行されるため、スクリプトがまだ完了していない場合でも、グラフィックデスクトップは引き続き実行されます。
これはsystemdに関連していますか?
私はRaspbian Jessieを使ってRaspberry Piでこのプログラムを実行しています。
答え1
ログインマネージャとして gdm を使用すると仮定すると、
[Unit]
Description=setup script
Before=gdm.service
[Service]
Type=oneshot
ExecStart=/my/setup/script
[Install]
gdm を使用していない場合は、xorg を起動するサービスを探してその行Before=
に入れます。説明:2つの問題があります。 1.あなたの場合は、default.target
graphic.targetへのシンボリックリンクかもしれません。したがって、Wants=default.target
グラフィックターゲットの後に開始する必要があることを意味します。 2.Before=default.target
動作しません。ターゲットは、起動プロセスの特定の段階で起動したときにsystemdに報告するために使用されます。完全ロードが開始されたときではなく開始されます。したがって、何かを開始したい場合にのみ目標を使用するのは合理的です。後ろに目標は、以前に到達していない場合、またはサービスのロードが完了した後にのみ目標に到達したい場合です。