다른 systemd 서비스가 실패할 때 oneshot systemd 서비스를 시작하는 방법

다른 systemd 서비스가 실패할 때 oneshot systemd 서비스를 시작하는 방법

systemd 서비스가 실패할 때 기본 애플리케이션(C++)을 시작하고 싶습니다. 유사한 내용을 설명하는 온라인 기사가 많이 있습니다. 즉, 실패 시 쉘 스크립트를 시작하는 것입니다. 같은 서비스를 이용하는 사람도 있고, 다른 서비스를 이용하는 사람도 있습니다. 다른 서비스에서 기본 애플리케이션을 실행하려고 합니다.

애플리케이션서버.서비스

[Unit]
Description=app server
OnFailure=appServerCrashAlerter.service
[Service]
Type=simple
ExecStart=/home/john/Documents/app
Restart=always
RestartSec=3
KillMode=process
[Install]
WantedBy=graphical.target

appServerCrashAlerter.service

[Unit]
Description=app server crash alerter
[Service]
Type=oneshot
ExecStart=/home/john/Documents/alerter
User=nobody
Group=systemd-journal

첫 번째 서비스가 실패하면 경고 서비스가 시작되지 않습니다. 두 번째 서비스를 활성화할 수 없지만 서비스를 시작하면 애플리케이션이 올바르게 시작됩니다. 저는 Ubuntu 20.04와 systemd 245(245.4-4ubuntu3.4)를 사용하고 있습니다.

관련 정보