![ps comm 格式始终会剪切进程名称](https://linux22.com/image/1355887/ps%20comm%20%E6%A0%BC%E5%BC%8F%E5%A7%8B%E7%BB%88%E4%BC%9A%E5%89%AA%E5%88%87%E8%BF%9B%E7%A8%8B%E5%90%8D%E7%A7%B0.png)
我试图调用,ps -o comm:1024 --pid 1391 --cols 1024 -w
希望获得完整的进程名称(仅此而已),但我总是得到这个
COMMAND
notification-ar
而进程名称则是notification-area-applet。我还尝试了-w、--cols和:formatter的所有组合。cmd和args给出了进程的完整路径和参数。我可能能够从这些中获取进程名称,但仍然……
答案1
该comm
领域(也/proc/$pid/comm
)是有限的由内核至 16 字节总计(15 个字符 + 终止 NUL 字节)。
如果系统是 Linux,并且您拥有该进程(或为 root),则可以通过以下命令获取可执行文件路径/proc/$pid/exe
使用readlink
命令。
否则,您必须使用字段cmd
(别名args
,command
)。在 Linux 上,它取自/proc/$pid/cmdline
(以 NUL 分隔),因此您也可以使用cut -d "" -f 1 /proc/$pid/cmdline
。
当心两个都 cmdline
并comm
可以通过流程本身进行改变。