假设我有一个 PHP 脚本,
//main.php -> PID = 1002
<?php
exec('ProcessOne');
exec('ProcessTwo');
//... many other exec calls
?>
main.php 创建了许多其他进程,它们有自己的 pid,脚本可能不会记录/跟踪这些 pid,但 main.php 的 pid 是已知的。
我的问题是:如何通过只知道 main.php 的 pid(在我的示例中为 1002)来终止由 main.php(包括 main.php)创建的所有进程?
脚本应该在 Linux 中运行。
谢谢
最佳答案
pkill -TERM -P 1002
pkill -P PID
为您提供所有子进程,-TERM
向所有子进程发送 TERM
信号。
杀死 child 的 child :
kill `pstree -p 1002 | sed 's/(/\n(/g' | grep '(' | sed 's/(\(.*\)).*/\1/' | tr "\n" " "`
来自 Walking a process tree 的修改版本.
关于php - 在 Linux 中的 PHP 脚本中终止所有相关进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11070717/