ps(1)
, 이 -f
옵션을 사용하면 아래와 같이 대괄호 안에 연관된 명령줄 없이 프로세스가 출력됩니다.
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Aug28 ? 00:07:42 /sbin/init
root 2 0 0 Aug28 ? 00:00:01 [kthreadd]
root 3 2 0 Aug28 ? 00:00:00 [rcu_gp]
root 4 2 0 Aug28 ? 00:00:00 [rcu_par_gp]
root 6 2 0 Aug28 ? 00:00:00 [kworker/0:0H-kblockd]
root 8 2 0 Aug28 ? 00:00:00 [mm_percpu_wq]
root 9 2 0 Aug28 ? 00:02:14 [ksoftirqd/0]
root 10 2 0 Aug28 ? 00:05:33 [rcu_preempt]
root 11 2 0 Aug28 ? 00:01:36 [rcuc/0]
root 12 2 0 Aug28 ? 00:00:00 [rcub/0]
root 13 2 0 Aug28 ? 00:00:07 [migration/0]
root 14 2 0 Aug28 ? 00:00:00 [idle_inject/0]
root 16 2 0 Aug28 ? 00:00:00 [cpuhp/0]
root 17 2 0 Aug28 ? 00:00:00 [cpuhp/1]
root 18 2 0 Aug28 ? 00:00:00 [idle_inject/1]
root 19 2 0 Aug28 ? 00:00:05 [migration/1]
root 20 2 0 Aug28 ? 00:00:55 [rcuc/1]
이러한 프로세스는 다른 프로세스처럼 예약됩니까?
답변1
Linux에서는 각 프로세스에 대해 커널이 제공하는 사용 가능한 정보가 pid라는 디렉터리에서 ps
처리됩니다 . 여기에는 두 개의 파일이 포함되어 있으며 ; 는 프로세스의 명령 이름, 프로세스의 명령줄,top
/proc
comm
cmdline
comm
cmdline
즉제공하는 매개변수(자체 "이름" 포함) ps
그리고 top
대괄호를 사용하여 둘을 구별합니다. 프로세스에 명령줄이 있으면 이 args
필드(라고도 함 CMD
)는 해당 명령줄을 출력하고, 그렇지 않으면 대괄호로 묶인 명령 이름을 출력합니다.
이것은ps
맨페이지, 을 위한 args
:
프로세스 매개변수를 사용할 수 없는 경우도 있습니다. 이 경우
ps
실행 파일 이름이 괄호 안에 인쇄됩니다.
프로세스 매개변수가 없는 프로세스에는 프로세스 구성이 없는 프로세스가 포함됩니다.어느명령줄이 없는 커널 스레드 및 프로세스와 같은 명령줄(또는 그렇지 않은 경우 argv[0]
),즉좀비 프로세스라고도 알려진 죽은 프로세스입니다(접미사로 식별 가능 <defunct>
).
이 중 어느 것도 예약 속성을 변경하지 않습니다. 모든 프로세스는 상태, 우선 순위 등에 따라 동일한 방식으로 예약됩니다.