在Linux中杀死PHP脚本中的所有相关进程

在Linux中杀死PHP脚本中的所有相关进程,php,linux,bash,shell,process,Php,Linux,Bash,Shell,Process,假设我有一个PHP脚本 //main.php -> PID = 1002 <?php exec('ProcessOne'); exec('ProcessTwo'); //... many other exec calls ?> //main.php->PID=1002 main.php使用自己的pid创建许多其他进程,脚本可能不会记录/跟踪这些进程,但main.php的pid是已知的 我的问题是:如何通过只知道main.php的pid(在我的示例中是1002)来杀死mai

假设我有一个PHP脚本

//main.php -> PID = 1002
<?php 
exec('ProcessOne');
exec('ProcessTwo');
//... many other exec calls
?>
//main.php->PID=1002
main.php使用自己的pid创建许多其他进程,脚本可能不会记录/跟踪这些进程,但main.php的pid是已知的

我的问题是:如何通过只知道main.php的pid(在我的示例中是1002)来杀死main.php(包括main.php)创建的所有进程

脚本应该在Linux中运行

谢谢

pkill-p PID
为您提供所有子进程,
-TERM
向所有子进程发送
TERM
信号

要杀死孩子中的孩子:

kill `pstree -p 1002 | sed 's/(/\n(/g' | grep '(' | sed 's/(\(.*\)).*/\1/' | tr "\n" " "`
修改版本自

pkill-p PID
为您提供所有子进程,
-TERM
向所有子进程发送
TERM
信号

要杀死孩子中的孩子:

kill `pstree -p 1002 | sed 's/(/\n(/g' | grep '(' | sed 's/(\(.*\)).*/\1/' | tr "\n" " "`

修改版本自。

如何在linux shell中终止进程?如何确定子进程?(这个问题与php无关)谢谢你的回答。我之所以如此详细地描述它,是因为在php中使用exec可能会给进程带来比我所知道的更多的关系:相同的组id?或者其他一些我可能不知道但可能有助于解决这个问题的东西。您将如何在linux shell中杀死一个进程?如何确定子进程?(这个问题与php无关)谢谢你的回答。我之所以如此详细地描述它,是因为在php中使用exec可能会给进程带来比我所知道的更多的关系:相同的组id?或者其他一些我可能不知道但可能对解决问题有用的东西。谢谢你的回答,但是使用pkill-TERM-p1002只会杀死pid 1002的直接子代。假设ProcessOne还有其他子进程也在运行,我们应该怎么做才能杀死所有给定pid 1002的子进程?感谢您的回答,但是使用pkill-TERM-P1002只能杀死pid 1002的直接子进程。假设ProcessOne还有其他子进程也在运行,我们应该怎么做才能杀死所有给定pid 1002的子进程?谢谢