Answers:
进行僵尸进程:
$ (sleep 1 & exec /bin/sleep 10)
该更换哪个运行shell 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>
$BASHPID
就是$$
我的想法。
$BASHPID
是不一样的$$
。请尝试以下代码: echo $$ $BASHPID ;echo $(echo $$ $BASHPID)
。您可以在中找到更多信息man bash
。
unshare
以创建PID名称空间,以便从该进程树内部隔离外部进程,并且无法访问这些外部进程。