ps formato comm sempre corta o nome do processo

2

Estou tentando invocar ps -o comm:1024 --pid 1391 --cols 1024 -w na esperança de obter o nome completo do processo (e apenas isso), mas sempre acabo com isso

COMMAND
notification-ar

enquanto o nome do processo é, em vez disso, o applet da área de notificação. Eu também tentei todas as combinações de -w, --cols e: formatter. cmd e args fornecem o caminho completo e argumentos do processo. Eu posso conseguir o nome do processo, mas ainda assim ...

    
por Stefano Borini 18.03.2013 / 09:51

1 resposta

5

O campo comm (também /proc/$pid/comm ) é limitado pelo kernel a 16 bytes total (15 caracteres + byte de terminação NUL).

Se o sistema é Linux e você possui o processo (ou é root), você pode obter o caminho do executável seguindo /proc/$pid/exe usando o comando readlink .

Caso contrário, você terá que usar o campo cmd (aliases args , command ). No Linux, é tirado de /proc/$pid/cmdline (que é separado por NUL), então você também pode usar cut -d "" -f 1 /proc/$pid/cmdline .

Tenha em atenção que ambos cmdline e comm podem ser alterados pelo próprio processo.

    
por 18.03.2013 / 11:08

Tags