배쉬는 좀비를 만들지 않는 것 같습니다. 프로세스가 종료되면 즉시 처리되는 것처럼 보입니다.
bash가 좀비를 만들 수 있습니까?
내가 묻는 이유 :
자식 프로세스를 안전하게 종료하거나 kill -9
특정 시간 내에 죽지 않으면 안전하게 프로세스 를 종료하고 싶지만 실수로 자식 프로세스가 아닌 프로세스를 짤리 게하고 싶지 않습니다. 좀비 프로세스는 일반적으로 매우 쉽고 경쟁 조건이 안전합니다.
답변
좀비 프로세스를 만들려면
$ (sleep 1 & exec /bin/sleep 10)
이 실행 쉘 교체 sleep 1
로 /bin/sleep 10
알고하지 않을 것이다 sleep 1
그래서 10 초 동안 좀비를 만드는 프로세스가 종료합니다.
좀비 프로세스를 죽이면 어떤 결과가 나올지 잘 모르겠습니다. 좀비 프로세스가 이미 종료되었으므로 죽일 수 없습니다.
실제로 좀비 프로세스를 사라지게 할 수 있지만 좀비 프로세스 자체가 아니라 부모를 종료하면됩니다.
답변
그리 흥미로운 답변은 아닙니다.
$ (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>