特定の (SIG) シグナルを systemd に送信するにはどうすればよいですか?

特定の (SIG) シグナルを systemd に送信するにはどうすればよいですか?

の上systemd のマニュアルページというセクションがあります信号さまざまな信号とそれがシステムに与える影響について説明します。

たとえば、SIGRTMIN+3システムを再起動します。

シグナル最小値+3

マシンを停止し、halt.targetユニットを起動します。これは主に

systemctl start halt.target  --job-mode=replace-irreversibly

SIGRTMIN+15 は直ちにマシンを再起動します。

シグナル最小+15

Immediately reboots the machine

マニュアルページには同等のコマンドは記載されていません。

systemd SIGRTMIN+15

しかし、エラーが発生するので間違っているようですExcess arguments.

これらの信号をどのように使用すればよいのでしょうかsystemd?

答え1

まず、それらは sigterm ではありません。次に、引数ではなくシグナルを渡します。シグナルを送信するには、 を使用しますkill。を参照してくださいman kill。プロセスを指定する必要があります。はsystemd常にプロセス 1、つまり init プロセスとして実行されます。

したがって、送信するにはSIGRTMIN+15、 を実行しますsudo kill -SIGRTMIN+15 1

shutdown --poweroffただし、 、 またはコマンドを使用する方が適切ですshutdown --reboot

関連情報