【问题标题】:Listing all running processes on server using PHP使用 PHP 列出服务器上所有正在运行的进程
【发布时间】:2015-12-08 18:04:51
【问题描述】:

我正在尝试使用PHP 获取当前在我的 Ubuntu 服务器上运行的所有进程的列表。理想情况下,我想获得以下信息:

  • 进程 ID
  • 用于执行进程的命令
  • 给过程的论据

我知道可以使用exec调用ps列出当前正在运行的进程。

exec('ps aux', $output);

但是,输出格式为任意数量的空格,因此解析它并不是世界上最简单的事情。

我可能会使用explodepreg_split 进行解析,但是有没有更简单的方法来获取使用php 的所有正在运行的进程的列表以及进程ID、命令和参数?

【问题讨论】:

    标签: php linux ubuntu process ps


    【解决方案1】:

    大部分功劳归于meuh


    ps ahxwwo pid,command
    

    给了我我需要的三个项目,但由于任意空间格式,它仍然很难解析。

    但是,可以删除空格格式。

    ps ahxwwo pid:1,command:1
    

    使用explode 和空格作为分隔符现在可以保证索引 0 是 pid,索引 1 是命令,其余索引是参数。

    【讨论】:

      【解决方案2】:

      我没有看到比 ps 使用正确的参数更简单的东西,例如:ahxwwo pid,command 它只提供您想要的信息,例如:

      5911 tail -F /var/log/mail.log
      

      如果您想要原始数据,您可以读取/proc/[123456789]*/cmdline 中的每个文件。例如,

      $ cat -vet /proc/5911/cmdline
      tail^@-F^@/var/log/mail.log^@
      

      命令参数由空字符分隔。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-24
        • 2021-08-27
        • 1970-01-01
        • 1970-01-01
        • 2017-10-20
        • 2016-01-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多