我正在尝试使用PHP
获取当前在我的Ubuntu服务器上运行的所有进程的列表。 理想情况下,我想获得以下信息:
我知道我可以使用exec
调用ps
来列出当前正在运行的进程。
exec('ps aux', $output);
但是,输出格式化为任意数量的空格,因此parsing它并不是世界上最简单的事情。
我可能会使用explode
或preg_split
来parsing,但有没有更容易的方法来获得所有正在运行的进程清单,使用php
,以及进程ID,命令和参数?
我没有看到任何比ps
更正确的参数,例如: ahxwwo pid,command
只给出你想要的信息的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是命令,其余索引是参数。