过了一段时间没有杀死命令的过程

时间:2016-11-02 05:17:14

标签: bash time timeout

我想从bash运行一个应用程序并在一段时间后将其杀死。我找到了this answer

xmessage "Hello World" & pidsave=$! sleep 10; kill $pidsave

但这是结果:

[4] 23034
[3]   Terminated              xmessage "Hello World"
bash: kill: (22985) - No such process

如你所见,xmessage没有停止,它的窗口仍然存在。当然this有效:

your_command & sleep 20; kill $!

第一个命令有什么问题?与第二个命令相比,它更喜欢什么?

1 个答案:

答案 0 :(得分:0)

当您运行xmessage命令将其终止时,进程kill终端已经停止。

这可以在这里看到:

[3]   Terminated              xmessage "Hello World"

所以之后没有任何意义kill

要回答窗口仍然存在的原因:

许多进程产生另一个进程,然后杀死自己。在这种情况下会发生这种情况,您通过从终端运行xmessage生成的进程会生成另一个进程(带窗口的进程)并在此之后退出。孩子仍在跑步,并在父母死亡时成为孤儿(init成为新父母,因为init继承了所有孤儿。)

相关问题