考虑输出中的以下几行"ps auxwww"
:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 4262 0.0 0,1 76592 1104 s005 Ss 10:02am 0:00.03 login -pf yo
yo 4263 0.0 0,0 75964 956 s005 S 10:02am 0:00.03 -bash
如何强制ps将 COMMAND 列中的所有命令扩展为其完全限定的路径名?我希望登录被解析到 /usr/bin/login 和 Bash 到 /bin/bash。
Mac OS X 中是否有相当于procfs的功能?也就是说——是否有基于文件的机制来轻松获取进程信息?
试试这个:
ps ax -o pid,cmd
您可以根据需要重新格式化它(阅读手册页了解详细信息)。
最后,我认为 ps(甚至是 cat /proc/*/cmdline)会以启动方式报告命令。因此,如果没有给出完整路径,它将仅显示为“command”而不是“/path/to/command”。
首先,进程可以更改 报告的标题
ps
,因此它本身不是很可靠。您可以使用“e”标志尝试环境变量。其中应该有一个内置的 '_' 变量,如此处所述。
这对于
sh
BSD 和 Linux 一样适用。我相信这不能被用户覆盖。但是,它的可用性可能取决于用户选择的外壳,它非常讨厌,而且您的里程可能会有所不同。OS X 没有本机 procfs。有一个基于FUSE的端口。详细信息可以在这里找到。同样,您的里程可能会有所不同。
停止使用ps并使用cat /proc/pid/cmdline。
您可以使用通配符,例如 /proc/*/cmdline 。
从/proc中提取所有进程 ID 和完整路径: