私はsystemdサービスを使用しています。私のsystemdサービスが失敗したときにbashスクリプトを実行したいと思います。サービスを直接再起動するときにbashスクリプトを実行したくありません。ただし、そのプロセスまたは管理するプロセスがそれ自体で競合している場合にのみ適用されます。
どうすればいいですか?使用する必要がありますかOnFailure
?またはExecStopPost
?
ExecStart
私のシステムサービスではExecStop
答え1
私が見つけることができるものの中でhttps://bbs.archlinux.org/viewtopic.php?id=169344、使用でOnFailure=
十分です。終了コードがゼロでない場合、サービスは実行されます。それにもかかわらず、systemd.serviceのマンページにはこれに関する言及がありません。