2010-01-13 235 views
1

我有一个我写的shell脚本,它在有限循环内执行以下步骤:杀死进程杀死其他进程

我产生一个进程,并等待它结束。如果没有在40秒内完成,我执行:

kill -SIGTERM pid 

我有时发现,即使是做杀-SIGTERM PID,进程并不被杀害回应。在这种情况下,等待它杀死自己另外40秒钟后,我再执行:

kill -9 pid 

大多数时候,这已经足够了,我转移到这些步骤的下一次迭代。

问题: 有时在做上述一系列步骤时,我不仅终止了我打算杀死的进程,还杀死了运行执行这些步骤循环的脚本的shell。

问题:这是什么原因造成的?

+4

如何显示您的代码? – ghostdog74 2010-01-13 02:30:48

+1

听起来很呃...有一次,我不得不写一个cron作业,如果它们超过一分钟,它会每分钟杀掉MySQL查询。呸。 – gahooa 2010-01-13 02:33:56

+0

它很明显,如果你使用命令Kill -9,它会杀死整个进程树 – 2010-01-13 02:40:42

回答

1

两种可能性:

1)你传递的PID壳或脚本,而不是子进程

2)你的shell /脚本简单地退出正常的,因为与子进程死了没有什么可以做的。