Bash는 좀비를 생성하지 않는 것 같습니다. 프로세스가 종료된 직후에 수확되는 것처럼 보입니다.
Bash가 좀비를 생성하도록 할 수 있나요?
내가 묻는 이유:
kill -9
자식 프로세스를 안전하게 종료하거나 , 한동안 종료되지 않은 경우 안전하게 종료하고 싶지만, 내 자식 프로세스가 아닌 프로세스를 실수로 종료하고 싶지는 않습니다. 좀비 프로세스는 일반적으로 경쟁 조건으로부터 매우 간단하고 안전합니다.
답변1
좀비 프로세스를 생성합니다:
$ (sleep 1 & exec /bin/sleep 10)
이는 프로세스가 종료되었음을 알지 못하여 sleep 1
10 초 동안 좀비를 생성하는 실행 중인 셸을 대체합니다 ./bin/sleep 10
sleep 1
좀비 프로세스를 죽여서 무엇을 기대하는지 잘 모르겠습니다. 좀비 프로세스는 이미 죽었으므로 죽일 수 없습니다.
실제로 좀비 프로세스 자체를 죽이는 것이 아니라 부모 프로세스를 죽이면 좀비 프로세스가 사라지게 할 수 있습니다.
답변2
그다지 흥미롭지 않은 답변:
$ (A=$BASHPID && ( kill -STOP $A ))
[1]+ Stopped ( A=$BASHPID && ( kill -STOP $A ) )
$ ps -C bash
PID TTY TIME CMD
29453 pts/0 00:00:00 bash
29593 pts/0 00:00:00 bash
29594 pts/0 00:00:00 bash <defunct>