bash의 좀비 있습니까? 내가 묻는 이유 : 자식 프로세스를 안전하게

배쉬는 좀비를 만들지 않는 것 같습니다. 프로세스가 종료되면 즉시 처리되는 것처럼 보입니다.

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>


답변