kno*_*orv 4 unix mac-osx process ps
考虑"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
Run Code Online (Sandbox Code Playgroud)
如何强制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”标志尝试环境变量。
ps auxwwwe
Run Code Online (Sandbox Code Playgroud)
其中应该是一个内置的“_”变量,如here所述。
对于作为 shell 子进程运行的每个命令,sh 将此变量设置为可执行文件的完整路径名,并将该值通过环境传递给该子进程。
这适用sh于 BSD 和 Linux。我相信这不能被用户覆盖。但是,它的可用性可能取决于用户对外壳的选择,它非常讨厌并且您的里程可能会有所不同。
OS X 没有本机 procfs。有一个基于FUSE的端口。可在此处找到详细信息。同样,您的里程可能会有所不同。
| 归档时间: |
|
| 查看次数: |
27920 次 |
| 最近记录: |