본문 바로가기
리눅스 Q&A

리눅스에서 프로세스 상태 확인하는 방법

by reallinux1 2023. 9. 8.

리눅스에서 프로세스 상태 확인하는 방법

 

 Q: 프로세스 상태를 크게 3가지로 볼 때 Wait, Ready, Run 으로 보잖아요
만약 아래처럼 아무것도 없는 프로그램을 돌리면
[code]
int main()
{

}
[/code]
프로세스 상태는 Ready -> Run -> 종료
맞나요??
리눅스에서 바로 종료해서 ps -l 명령어로 확인 할 수 가 없어서 질문드립니다

 

A: 안녕하세요. 리얼리눅스 입니다.
실제 리눅스 내부에서 프로세스 상태는 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);

}

 

추가적으로 리눅스 에서 프로세스 상태관련해서

공부를 더 하고 싶으시다면 아래 유투브 영상링크를 참고하세요!

 

 

Real Linux | 최신트렌드 리눅스 전문교육|임베디드|서버

직장인을 위한 리눅스교육

reallinux.co.kr