Windows(Powershell)에서 Linux(Shell Script)로 모니터링 스크립트를 마이그레이션하고 싶습니다. Windows에서 확인하는 한 가지는 응용 프로그램이 "응답하지 않는" 경우입니다. (예를 들어 작업 관리자를 열면 "실행 중" 또는 "응답 없음"이라고 표시됩니다)
Linux에도 이에 상응하는 것이 있나요? 그렇다면 어떻게 찾을 수 있나요? 온라인으로 검색했지만 찾는 방법을 설명하는 내용을 찾을 수 없으며 앱이 응답하지 않는 경우 수행할 작업만 찾을 수 있습니다.
답변1
Linux에서는 프로세스가 다양한 상태에 있을 수 있습니다.
- 실행 중(R): 프로세스가 실행 중이거나 실행할 준비가 된 상태입니다.
- 인터럽트 가능(S): 이 상태는 프로세스가 차단된 상태로, 다른 프로세스의 이벤트나 신호를 기다리고 있습니다.
- Uninterruptible(D): 차단 상태이기도 합니다. 하드웨어 상태를 기다리고 있고 신호를 처리할 수 없는 특정 조건에서는 프로세스가 강제로 중지됩니다.
- 중지됨(T): 프로세스가 완료되면 이 상태가 발생합니다. 프로세스를 다시 시작할 수 있습니다.
- Zombie(Z): 이 상태에서는 프로세스가 종료되지만 프로세스 테이블의 정보는 계속 사용할 수 있습니다.
"ps" 명령과 "grep"을 실행하여 상태를 확인할 수 있습니다. 예를 들어:
ps aux | awk '{if ($8 ="D") print}'
답변2
참고하실 수 있도록 다음 링크를 찾았습니다. 이는 매우 유용하고 정확합니다. Linux 매뉴얼에 제공됨공정(5).
state %c
One of the following characters, indicating process
state:
R Running
S Sleeping in an interruptible wait
D Waiting in uninterruptible disk sleep
Z Zombie
T Stopped (on a signal) or (before Linux 2.6.33)
trace stopped
t Tracing stop (Linux 2.6.33 onward)
W Paging (only before Linux 2.6.0)
X Dead (from Linux 2.6.0 onward)
x Dead (Linux 2.6.33 to 3.13 only)
K Wakekill (Linux 2.6.33 to 3.13 only)
W Waking (Linux 2.6.33 to 3.13 only)
P Parked (Linux 3.9 to 3.13 only)