ps comm 格式始终会剪切进程名称

ps comm 格式始终会剪切进程名称

我试图调用,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(别名argscommand)。在 Linux 上,它取自/proc/$pid/cmdline(以 NUL 分隔),因此您也可以使用cut -d "" -f 1 /proc/$pid/cmdline

当心两个都 cmdlinecomm可以通过流程本身进行改变。

相关内容