의 출력 에서 필드 5 를 볼 수 있습니다 /proc/[pid]/stat
.
$ ps -ejH | grep firefox
3043 2683 2683 ? 00:00:21 firefox
$ < /proc/3043/stat sed -n '$s/.*) [^ ]* [^ ]* \([^ ]*\).*/\1/p'
2683
보낸 사람 man proc
:
/proc/[pid]/stat
Status information about the process. This is used by ps(1). It is defined in /usr/src/linux/fs/proc/array.c.
The fields, in order, with their proper scanf(3) format specifiers, are:
pid %d The process ID.
comm %s The filename of the executable, in parentheses. This is visible whether or not the executable is swapped out.
state %c One character from the string "RSDZTW" where R is running, S is sleeping in an interruptible wait, D is waiting in
uninterruptible disk sleep, Z is zombie, T is traced or stopped (on a signal), and W is paging.
ppid %d The PID of the parent.
pgrp %d The process group ID of the process.
session %d The session ID of the process.
다음을 사용할 수 없습니다.
awk '{print $5}'
해당 파일은 공백으로 구분 된 목록이 아니기 때문입니다. 두 번째 필드 (프로세스 이름에는 공백이나 줄 바꿈 문자가 포함될 수 있음). 예를 들어, 대부분의 스레드는 firefox
일반적으로 이름에 공백 문자가 있습니다.
따라서 마지막 )
문자가 나타난 후 3 번째 필드를 인쇄해야합니다 .
awk '{print $5}'
보장되지는 당신에게 공백이나 개행 문자를 포함 할 수 있습니다 프로세스 이름 (두 번째 필드)와 같은 정답을 제공합니다.