1

我有一个我编写的 shell 脚本,它在有限循环中执行以下步骤:

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

kill -SIGTERM pid

我有时发现,即使执行 kill -SIGTERM pid,进程也不会响应被杀死。在这种情况下,在等待它杀死自己的额外 40 秒后,我然后执行:

kill -9 pid

大多数时候这已经足够了,我继续进行这些步骤的下一个迭代。

问题:有时在执行上述步骤时,我最终不仅拥有了我打算杀死、杀死的进程,而且还有运行脚本的 shell,该脚本执行这些步骤的循环。

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

4

1 回答 1

1

两种可能:

1.)您传递的是 shell 或脚本的 PID,而不是子进程

2.)您的外壳/脚本只是正常退出,因为子进程已死,无事可做。

于 2010-01-13T03:20:12.467 回答