再起動時にSystemd Requiresが実行されないようにする

再起動時にSystemd Requiresが実行されないようにする

起動時に一度コンパイルして成功したら、実行したいアプリケーションがあります。 2つのサービスがあります:compile-apprun-app。 this を使って設定するとRequires動作しますが、そうするたびにsystemctl restart run-app再実行されるのでcompile-app望ましくありません。

compile-app手動で再起動したときにサービスが実行されないようにサービスを再設定するにはどうすればよいですかrun-app

# compile-app.service

[Unit]
Description=compile app
After=network-online.target syslog.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=some command
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

そして

# run-app.service

[Unit]
Description=run app
After=network-online.target syslog.target
Wants=network-online.target
Requires=compile-app.service

[Service]
Type=simple
ExecStart=some command

[Install]
WantedBy=multi-user.target

EOF

それが私が今持っているものです。

ベストアンサー1

RemainAfterExit=true成功しなければなりませんでした。compile-app.service他のデバイスを停止/再起動すると、実際に停止/再起動されますか?

にもcompile-app.service追加する必要があります。これで、2つのサービス間に順次関係がないため、並列に開始されます。これは順序を意味せず、依存関係も意味しません。Afterrun-app.serviceWants/Requires/ConflictsBefore/After

おすすめ記事