리눅스에서 프로세스 상태 확인하는 방법
안녕하세요. 리얼리눅스 입니다.
실제 리눅스 내부에서 프로세스 상태는 top 명령어 등을 통해서
아래와 같이 확인하실 수 있습니다
S: 프로세스 상태 (STATE)
'D' = uninterruptible sleep (예시: 디스크I/O처리대기)
'R' = running
'S' = sleeping (예시: 네트워크 I/O 처리대기)
'I' = idle (예시: sleep 중인 kernel thread)
'T' = stopped by job control signal
't' = stopped by debugger during trace
'Z' = zombie
원하시는부분은 프로세스의 상태변화과정을 모니터링 및 추적을 하고싶으신거잖아요 ?
ps -l 로 해도 잡히지않는이유는 순식간에 종료가 되버려서 입니다.
간단한 해결책으로는 종료가 되지않도록 while(1); 무한 반복문을 삽입하고
종료는 Ctrl+c키 또는 (kill 명령어통한)시그널 전송을 통해 하실 수 있습니다.
예시 소스코드:
#include <stdio.h>
void main()
{
printf("infinite hello");
while(1);
}