bash 中的僵尸

PSk*_*cik 13 bash process

Bash 似乎不会创建僵尸。看起来这些进程在被杀死时会立即获得收益。

我可以让 bash 制造僵尸吗?


为什么我要问:

我希望能够安全地杀死一个子进程,或者kill -9如果它在一段时间内没有死亡,则可以安全地杀死它,但我不想意外地关闭一个不是我的子进程的进程。僵尸进程通常使它变得非常简单并且竞争条件安全。

cuo*_*glm 17

制作僵尸进程:

$ (sleep 1 & exec /bin/sleep 10)
Run Code Online (Sandbox Code Playgroud)

该更换哪个运行shellsleep 1/bin/sleep 10的是不会知道的sleep 1进程终止,因此,创建一个僵尸,持续10秒。


我不确定你对杀死僵尸进程有什么期望。僵尸进程已经死了,你不能杀死它。

实际上,您可以使僵尸进程消失,但是通过杀死其父进程,而不是僵尸进程本身。


yae*_*shi 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>
Run Code Online (Sandbox Code Playgroud)