如何在 linux shell 中创建一个不会被 Ctrl-C 杀死的僵尸进程?
How Can make a zombie process in linux shell which is not killed by Ctrl-C?
如何在 linux shell 中创建一个未被 Ctrl-C 杀死并在死亡前复制自身的僵尸进程?如果可能的话,我们将如何终止这样的进程?
根据定义,僵尸进程已经死亡。除了进程 table 中的条目之外,它不会消耗任何资源。生成它的进程要么忽略了 wait
ing 的簿记,要么在 fork
ing 之前在 SIGCHLD
上设置忽略。由于它已经退出,kill
对僵尸进程没有影响(kill -9
也不会)。当其父进程调用 waitpid()
或退出时,它将 仅 从进程 table 中删除。
如果您只想让脚本忽略 Ctrl-C 或 kill
,请使用 trap "code" SIGNALS
:
#!/bin/bash
trap "echo Not dead yet!" SIGINT SIGTERM
echo "Kill me with kill -9 $$"
while true; do sleep 1; done
如何在 linux shell 中创建一个未被 Ctrl-C 杀死并在死亡前复制自身的僵尸进程?如果可能的话,我们将如何终止这样的进程?
根据定义,僵尸进程已经死亡。除了进程 table 中的条目之外,它不会消耗任何资源。生成它的进程要么忽略了 wait
ing 的簿记,要么在 fork
ing 之前在 SIGCHLD
上设置忽略。由于它已经退出,kill
对僵尸进程没有影响(kill -9
也不会)。当其父进程调用 waitpid()
或退出时,它将 仅 从进程 table 中删除。
如果您只想让脚本忽略 Ctrl-C 或 kill
,请使用 trap "code" SIGNALS
:
#!/bin/bash
trap "echo Not dead yet!" SIGINT SIGTERM
echo "Kill me with kill -9 $$"
while true; do sleep 1; done