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
最初のサービスが失敗した場合、警告サービスは開始されません。 2番目のサービスを有効にすることはできませんが、サービスを起動するとアプリケーションが正しく起動します。私はUbuntu 20.04とsystemd 245(245.4-4ubuntu3.4)を使用しています。