ps comm 格式总是剪切进程名称

Ste*_*ini 3 bash ps

我试图调用ps -o comm:1024 --pid 1391 --cols 1024 -w以获取完整的进程名称(并且仅此而已),但我总是以这个结束

COMMAND
notification-ar
Run Code Online (Sandbox Code Playgroud)

而进程名称是notification-area-applet。我还尝试了 -w、--cols 和 : 格式化程序的所有组合。cmd 和 args 给出进程的完整路径和参数。我也许可以从这些中获取进程名称,但仍然......

use*_*686 6

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.

要注意的是这两个 cmdlinecomm通过过程本身被改变。