실행 중인 Java 프로세스를 "일시 중지"하려고 합니다. 그래서 나는 권장 사항을 실행했습니다.
sudo kill -SIGSTOP <pid_of_java_proc>
그러나 strace를 실행하면 다음과 같습니다.
sudo strace -F -p <pid_of_java_proc> 2>&1
나는 다음과 같은 것을 본다 :
[pid <someotherpid>] sendto(34, "a string...
[pid <yetotherpid>] sendto(34, "different string...
이를 바탕으로 실제로 그런 일이 있을 것이라고 추측합니다.어린이어쨌든 프로세스는 여전히 "정지되지 않습니다".
내가 뭐 놓친 거 없니? 상위 PID "및 모든 하위 프로세스"를 차단하는 쉬운 방법이 있습니까? (someotherpid, Yetotherpid)를 ps 보고서에 표시하여 열거할 수 없는 것 같습니다.
답변1
시도해 보셨나요:
sudo kill -SIGSTOP $PID `ps -o pid= --ppid $PID`
?
그러면 현재 프로세스가 중지되고 ps를 사용하여 모든 직계 하위 프로세스를 찾아 중지합니다. 작동하지 않을 수 있는 가능한 이유는 중첩된 자식(즉, 자식에 자식이 있음) 또는 실제로 일부 전역 부모(예: init 시스템)에 속한 자식을 포함합니다.