명령줄에서 프로세스가 중지되었는지 확인하는 방법은 무엇입니까?

명령줄에서 프로세스가 중지되었는지 확인하는 방법은 무엇입니까?

나는 PID를 가지고 있고 방금 다음을 사용하여 프로그램을 중지했습니다.

kill -stop PID

이제는 계속 이 일을 하고 싶어요

kill -cont PID

그러나 그것이 멈춘 경우에만 가능합니다. 중지되었거나 실행 중인지 어떻게 확인할 수 있나요?

답변1

프로세스가 중지되었는지, 출력이 T있는지 확인할 수 있습니다 ps.

넌 할 수있어:

[ "$(ps -o state= -p PID)" = T ] && kill -CONT PID
  • [ "$(ps -o state= -p PID)" = T ]출력이 인지 테스트하고 ps -o state= -p PID, T그렇다면 SIGCONT프로세스로 전송됩니다. PID를 프로세스의 실제 프로세스 ID로 바꾸십시오.

답변2

또 다른 방법은

pid=1
status=`cat /proc/$pid/wchan`
if [ "$status" == "do_signal_stop" ] ; then
  echo "$pid sleeps: $status"
else
  echo "$pid does not sleep: $status"
fi

답변3

ps -e | grep | PROGRAM 

또는

while true;
do
kill program 
done 
wait 

관련 정보