私は/etc/init.dスクリプトを使ってデーモンを起動します。 WheezyとTrustyでは、たとえデーモンが異常な理由(kill、seg faultなど)で実行を停止したとしても、私はinvoke-rc.dデーモンstart(またはサービスデーモンstart)からやり直すことができます。また、invoke-rc.dデーモンの状態はゼロ以外の値で返されます(デーモンの状態を10秒ごとにチェックし、実行していない場合は再起動するスクリプトで使用しました)。デーモンが強制終了されたときにXenialのinvoke-rc.dが機能しない
デーモンがkillされた場合、invoke-rc.dデーモンのstartは動作せず、-rc.dが呼び出されます。デーモンのステータスによれば、デーモンはまだ実行中です(0で終了)。
私はsystemdがinitファイルを処理できることは知っていますが、このコーナーケースは正しく処理されていないようです。
systemdでは、このケースをSuccessExitStatus = exit_codeでカバーできますが、SystemdがTrustyからのinitスクリプトを使用している場合はカバーできません。
私の初期化ファイルをどのように変更できるかについては、Xenialでそのケースをカバーしています(私は両方のバージョンの管理を避けるためにsystemdファイルを作成したくありません)。