起動時に一度コンパイルして成功したら、実行したいアプリケーションがあります。 2つのサービスがあります:compile-app
とrun-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つのサービス間に順次関係がないため、並列に開始されます。これは順序を意味せず、依存関係も意味しません。After
run-app.service
Wants/Requires/Conflicts
Before/After