コンソールにメッセージが表示されないようにsystemdにシグナルを送信する

コンソールにメッセージが表示されないようにsystemdにシグナルを送信する

システムマニュアルページ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

おすすめ記事