나는 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