如何使用PHP exec()获得正在运行的PHP脚本列表?

我需要知道并杀死如果有任何进程运行指定的PHP脚本。 有可能使用exec()和php脚本来获取运行sample.php的进程列表。

Solutions Collecting From Web of "如何使用PHP exec()获得正在运行的PHP脚本列表?"

exec("ps auxwww|grep sample.php|grep -v grep", $output); 

这只会工作,但如果PHP运行在CGI模式。 如果它作为一个SAPI类型的东西运行,你将永远不会在进程列表中看到“sample.php”,只是“httpd”。

没有。 因为PHP是通过apache / nginx运行的。 在命令行访问的情况下,proccess命名为PHP,而不是脚本的实际名称。

这取决于许多因素,包括操作系统,PHP版本等,但是你可以尝试使用信号来获得脚本给你的名字,然后终止匹配。 或者,让脚本注册其pid,然后与正在运行的进程进行比较。

http://stuporglue.org/handling-signals-in-php/

这帮助我通过url参数杀死流氓进程。 我觉得如果别人还在四处寻找答案,我会为讨论做出贡献。

加载yikes.php。 标识进程ID(它应该是您在数组的每个索引中找到的第一个整数)。 将其复制并粘贴到url中,即pid = XXXXX。 它已经消失了

 //http://website.com/yikes.php?pid=668 $pid = $_GET['pid']; exec("ps auxwww|grep name-of-file.php|grep -v grep", $output); echo '<pre>'; print_r($output); echo '</pre>'; // exec("kill $pid");