시작 시 한 번 컴파일하고 성공하면 실행하려는 애플리케이션이 있습니다. 두 가지 서비스가 있습니다: 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
추가 해야 합니다 . 이제 두 서비스 사이에는 순차적인 관계가 없으므로 병렬로 시작됩니다. 이는 순서를 의미하지 않으며 종속성을 의미하지도 않습니다.After
run-app.service
Wants/Requires/Conflicts
Before/After