确定正在运行的PHP脚本?

时间:2011-01-13 21:29:49

标签: php

我有一个大型PHP应用程序,我正在寻找一种方法来了解哪个PHP脚本在给定时刻正在运行。有点像你在Linux命令行上运行“top”而不是PHP。

3 个答案:

答案 0 :(得分:4)

您是在尝试从PHP应用程序内部还是在其外部执行此操作?如果您在PHP代码中,那么在此时输入debug_print_backtrace();将显示包含的PHP文件的“树”,以便在那时获得。

如果你在PHP脚本之外,你只能看到调用原始PHP脚本的一个进程(index.php或whatnot),除非应用程序在执行过程中产生并行线程。

答案 1 :(得分:1)

如果您在系统级别查找此信息,例如在任何Apache子进程下运行的所有php文件,甚至是其他应用程序使用的任何PHP文件,都有lsof程序(列表打开文件),默认情况下会吐出系统上的所有打开文件(可执行文件) ,套接字,fifos,.so等...)。您可以将输出格式化为“.php”,并获得当时正在使用的内容的完整图片。

答案 2 :(得分:0)

这篇旧文章展示了一种方法,可以将您的调用包装到php脚本中,并为每个进程获取PID。

Does PHP have threading?

$cmd = 'nohup nice -n 10 /usr/bin/php -c /path/to/php.ini -f /path/to/php/file.php action=generate  var1_id=23 var2_id=35 gen_id=535 > /path/to/log/file.log & echo $!';
$pid = shell_exec($cmd);