ps aux --forest -j
부모 프로세스와 자식 프로세스를 보기 위해 달려갔습니다 . 예는 다음과 같습니다.
root 3744 3744 3744 0.0 0.2 77084 4160 ? Ss 09:34 0:00 /usr/sbin/cupsd -f
lp 3747 3747 3744 0.0 0.1 63156 2236 ? S 09:34 0:00 \_ /usr/lib/cups/notifier/dbus dbus://
lp 3748 3748 3744 0.0 0.1 63156 2240 ? S 09:34 0:00 \_ /usr/lib/cups/notifier/dbus dbus://
세 번째 열은 PGID입니다. 내 목표는 상위 프로세스의 PGID 3744를 사용하여 3개의 PID를 모두 종료하는 것입니다. 내 명령은 -
pkill -TERM -g 3744
그러나 이는 효과적이며 프로세스는 새 PID로 다시 생성됩니다. 어떻게 이것을 방지하고 영구적으로 만들 수 있습니까?
답변1
다음을 사용하는 Ubuntu 14.04를 실행 중입니다.upstart
초기화 프로세스로. 여기에서 /etc/init/cups.conf
하나의 섹션이 있음을 알 수 있으므로 respawn
기본적으로 cupd 프로세스가 끝나면 다른 섹션이 시작됩니다.
# kill -TERM -3390
# tail -1 /var/log/syslog
Aug 9 14:22:49 ubuntu kernel: [ 283.270126] init: cups main process ended, respawning
다음 재부팅 시 cupd 프로세스 트리가 종료되고 다시 시작되기를 원한다고 말합니다. 이렇게 하려면 다음 명령을 사용 initctl stop
하거나 그냥 사용 하면 됩니다.stop
# stop cups
cups stop/waiting
cups-browsed
컵과 관련된 모든 것을 멈추고 싶다면 당신도 멈추고 싶을 수도 있습니다.
서비스가 영구적으로 비활성화되지는 않습니다. 다시 시작하면 컵 프로세스가 시작됩니다.