カーニバルのゾンビ

カーニバルのゾンビ

Bashはゾンビを生成しないようです。プロセスが終了した直後に収穫されるようです。

Bashにゾンビを生成させることはできますか?


私が尋ねる理由:

kill -9子プロセスを安全に終了したり、しばらく終了していない場合は安全に終了したいのですが、私の子プロセスではないプロセスを誤って終了したくありません。ゾンビプロセスは通常、競争条件から非常にシンプルで安全です。

答え1

ゾンビプロセスを作成します。

$ (sleep 1 & exec /bin/sleep 10)

これは、プロセスが終了したことを知らずに、sleep 110秒間ゾンビを生成する実行中のシェルを置き換えます。/bin/sleep 10sleep 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>

関連情報