2

Я пытаюсь вызвать ps -o comm:1024 --pid 1391 --cols 1024 -w в надежде получить полное имя процесса (и только это), но я всегда получаю это

COMMAND
notification-ar

в то время как имя процесса вместо апплета области уведомлений. Я также попробовал все комбинации -w, --cols и: formatter. cmd и args дают полный путь и аргументы процесса. Я мог бы получить имя процесса от них, но все же ...

1 ответ1

5

Поле 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 могут быть изменены самим процессом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .