【问题标题】:Trying to get all the process table试图获取所有进程表
【发布时间】:2014-05-05 21:01:04
【问题描述】:

我正在尝试使用 php 打印整个进程表(实际上我正在尝试打印在我的服务器上运行的所有 php 进程)。这是我正在使用的代码:

var_dump(exec("ps -A | grep php"));

当我启动 php 文件时,它返回我自己的 PID,而不是其他已经运行的 PID。我通过 ssh 控制台检查过,有 7 个,该代码只打印了 1 个,与其他 PID 完全不同。

有什么办法吗?

提前致谢。

【问题讨论】:

  • 你可能需要ps -Ax | grep ph[p]
  • 我已经用ps -A | grep phpps auwx进行了测试。这两个返回了与该 php 文件关联的进程的值。我现在也测试了ps -A | grep ph[p] 并给了我与其他 2 相同的东西
  • 这些进程是通过 cron 任务创建的,所以我尝试在浏览器上手动创建它,但我也看不到它们
  • 您忘记了x 选项;否则只显示前台任务。
  • 我在上一条评论中错过了,但是是的,我考虑到了!无论如何,谢谢!

标签: php ssh putty


【解决方案1】:

我在PHP Manual: getmypid找到了答案

function countProcesses($scriptName) 
{ 
    // ps aux|grep "[u]pdate.php"|wc -l 
    $first    =    substr($scriptName, 0, 1); 
    $rest    =    substr($scriptName, 1); 

    $name    =    '"['.$first.']'.$rest.'"'; 
    $cmd    =    "ps aux | grep $name | wc -l"; 

    $result    =    exec($cmd); 

    return $result; 
} 

这个函数返回已经运行的进程数,所以我只需调用echo countProcesses('php6');,它就会返回以 php6 运行的进程数。

【讨论】:

    猜你喜欢
    • 2015-09-13
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    相关资源
    最近更新 更多