私のシステムサービスがクラッシュしたときにbashスクリプトをどのように実行しますか?

私のシステムサービスがクラッシュしたときにbashスクリプトをどのように実行しますか?

私はsystemdサービスを使用しています。私のsystemdサービスが失敗したときにbashスクリプトを実行したいと思います。サービスを直接再起動するときにbashスクリプトを実行したくありません。ただし、そのプロセスまたは管理するプロセスがそれ自体で競合している場合にのみ適用されます。

どうすればいいですか?使用する必要がありますかOnFailure?またはExecStopPost

ExecStart私のシステムサービスではExecStop

答え1

私が見つけることができるものの中でhttps://bbs.archlinux.org/viewtopic.php?id=169344、使用でOnFailure=十分です。終了コードがゼロでない場合、サービスは実行されます。それにもかかわらず、systemd.serviceのマンページにはこれに関する言及がありません。

関連情報