
시스템 매뉴얼 페이지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
.