systemd はすでにこれをサポートしており、デフォルトで有効になっています。
カスタマイズしたい唯一のことはタイムアウトです。これは TimeoutStopSec=
で行うことができます .例:
[Service]
TimeoutStopSec=2
これで、systemd は SIGTERM を送信し、サービスが終了するまで 2 秒待ちます。終了しない場合は、SIGKILL を送信します。
サービスが systemd に対応していない場合は、その PID ファイルへのパスを PIDFile=
で指定する必要がある場合があります。 .
最後に、あなたのデーモンは多くのプロセスを生成すると言いました。この場合、KillMode=control-group
を設定するとよいでしょう。 systemd は cgroup 内のすべてのプロセスにシグナルを送信します。