使用PHP列出服务器上所有正在运行的进程

Zsw*_*Zsw 5 php linux ubuntu process ps

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

  • 进程ID
  • 用于执行过程的命令
  • 对过程的争论

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

exec('ps aux', $output);
Run Code Online (Sandbox Code Playgroud)

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

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

meu*_*euh 3

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

5911 tail -F /var/log/mail.log
Run Code Online (Sandbox Code Playgroud)

如果您想要原始数据,您可以读取/proc/[123456789]*/cmdline. 例如,

$ cat -vet /proc/5911/cmdline
tail^@-F^@/var/log/mail.log^@
Run Code Online (Sandbox Code Playgroud)

其中命令参数由空字符分隔。