我正在尝试使用PHP
获取我的Ubuntu服务器上当前正在运行的所有进程的列表。理想情况下,我想获得以下信息:
我知道我可以使用exec
调用ps
列出当前正在运行的进程。
exec('ps aux', $output);
但是,输出的格式是任意数量的空格,因此解析它并不是世界上最简单的事情。
我可能会使用explode
或preg_split
进行解析,但是有没有更简单的方法可以使用php
获取所有正在运行的进程以及进程ID,命令和参数的列表?
我没有看到比带有正确参数的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^@
其中命令参数由空字符分隔。
大部分功劳归于meuh。
ps ahxwwo pid,command
给了我我需要的三个项目,但是由于任意空间格式,它仍然很难解析。
但是,可以删除空格格式。
ps ahxwwo pid:1,command:1
现在将explode
与空白用作定界符,可以保证索引0是pid,索引1是命令,其余索引是参数。
尝试使用PHP库devium/processes