说我有一个PHP脚本,
//main.php -> PID = 1002
<?php
exec('ProcessOne');
exec('ProcessTwo');
//... many other exec calls
?>
main.php使用自己的pid创建许多其他进程,脚本可能无法记录/跟踪这些进程,但是main.php的pid是已知的。
我的问题是:如何通过仅知道main.php的pid(在我的示例中为1002)来杀死main.php(包括main.php)创建的所有进程?
该脚本应该在Linux中运行。
由于
答案 0 :(得分:4)
pkill -TERM -P 1002
pkill -P PID
为您提供所有子进程,-TERM
向所有儿童发送TERM
信号。
杀死孩子的孩子:
kill `pstree -p 1002 | sed 's/(/\n(/g' | grep '(' | sed 's/(\(.*\)).*/\1/' | tr "\n" " "`
Walking a process tree修改后的版本。