スクリプトの実行中に Systemd が起動を一時停止します。

スクリプトの実行中に Systemd が起動を一時停止します。

起動時に実行したいスクリプトがありますが、実行時に起動プロセスを一時停止したいと思います。

私は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.targetgraphic.targetへのシンボリックリンクかもしれません。したがって、Wants=default.targetグラフィックターゲットの後に開始する必要があることを意味します。 2.Before=default.target動作しません。ターゲットは、起動プロセスの特定の段階で起動したときにsystemdに報告するために使用されます。完全ロードが開始されたときではなく開始されます。したがって、何かを開始したい場合にのみ目標を使用するのは合理的です。後ろに目標は、以前に到達していない場合、またはサービスのロードが完了した後にのみ目標に到達したい場合です。

関連情報