
システムマニュアルページhttps://www.freedesktop.org/software/systemd/man/systemd.htmlコンソールに表示されるSIGRTMIN+21
ステータスメッセージ(例:など)を無効にするためにsystemdプロセスに送信できることを示します。Started Login service.
マニュアルページの関連スニペットは次のとおりです。
SIGRTMIN+21
Disables display of status messages on the console, as controlled via
systemd.show_status=0 on the kernel command line.
プロセステーブルを見ると、systemdに関連するプロセスは少なくとも4つあります。マンページには次のうちどれが記載されていますか?
~# ps -ef |grep [s]ystemd
root 448 1 0 18:47 ? 00:00:01 /lib/systemd/systemd-journald
root 450 1 0 18:47 ? 00:00:00 /lib/systemd/systemd-udevd
root 722 1 0 18:47 ? 00:00:00 /sbin/cgmanager -m name=systemd
root 723 1 0 18:47 ? 00:00:00 /lib/systemd/systemd-logind
message+ 742 1 0 18:47 ? 00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
私は10秒間眠り続け、起動時に起動することを確認する以外には何もしない単純なデーモンを作成しました。
私は大まかに推測し、次のようにcgmanager
プロセス(pid 722
)に信号を送りました。
# kill -SIGRTMIN+21 722
Cgroupデーモンの再起動に関する複数のメッセージがコンソールにありますが、「Start job...」というメッセージはコンソールに表示され続けます。
[ OK ] Stopped Cgroup management daemon.
[ OK ] Started Cgroup management daemon.
Server lin1 ttyS0
[ ***] A start job is running for Sleep te... initialization (51s / no lim
上記のようにコンソールロギングを無効にできる人はいますか?それではどうでしょうか?
答え1
systemdをinitシステムとして実行している場合、これらのシグナルを送信する必要があるプロセスはPID 1を持つプロセスです(代わりにinit
システムから呼び出すことができますsystemd
)。
プロセスがSIGRTMIN + 21を受信すると何も記録しませんが、SIGUSR1(これはsystemdがD-Busバスに再接続されます)を受信すると何も記録しないようです。
kill -SIGUSR1 1
journalctl -e
これにより、次のようになります。
Dez 30 20:34:25 mineo-foobar systemd[1]: Trying to reconnect to bus...
上記は、PID 1がシグナルを送信する正しい宛先ですが、ステータスメッセージを停止するには使用する必要があることを示していますkill -SIGRTMIN+21 1
。