재부팅 시 Systemd Requires가 실행되지 않도록 방지

재부팅 시 Systemd Requires가 실행되지 않도록 방지

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

관련 정보