IT/Unix & Linux

[AIX] 프로세스 교착상태 확인 방법, 프로세스 trace 방법

슈다루냥 2021. 8. 5.

안녕하세요. 슈다입니다.

 

스크립트나 프로그램 등을 실행하였는데

왜인지 반응이 없어 보이는 경우가 종종 있습니다.

 

이럴 때 특정 프로세스가 정상적으로 동작중인지,

아니면 프로세스만 실행중이고 내부적으로는 동작하지 않는 Sleep 상태인지

확인이 가능한 방법을 소개합니다.

 

 

 

프로세스 상태 확인하기

 

서버에서 ps명령으로 프로세스를 확인하던 중

오래전에 실행한 스크립트가 아직도 동작중인 것을 발견하게 됩니다.

[ PID : 47448294 ]

 

 

한참 전에 실행했던 스크립트인데 아직도 실행중이라면

프로세스가 Sleep 상태로 빠져있을 수 있습니다.

 

 

 

PID를 이용해 프로세스를 trace 합니다.

# truss  -p  PID

 

truss 명령은 프로세스의 호출을 실시간으로 확인할 수 있습니다.

PID인 47448294 프로세스를 확인해보니 sleeping... 이라고 확인되며

더이상 아무런 로깅도 되지 않습니다. 

컨트롤+C 입력으로 명령어를 중단합니다.

 

 

 

이러한 경우 대부분 프로세스가 실행은 되고 있지만

내부적으로 교착상태로 인해 동작하지 않고 있는 상태입니다.

정상적인 경우 지속적으로 trace 로그를 남기게 됩니다.

 

 

 

종료가 가능한 경우 kill 명령을 이용해 프로세스를 종료합니다.

# kill  -9  PID

 

 

 

반응형