make
쉘에서 명령을 실행할 때 ( 큰 프로젝트에서) Ctrl-Z를 입력하여 프로세스를 중지하고 쉘로 돌아갈 수 있습니다. 그 후 fg
프로세스를 계속 진행할 수 있습니다 .
이것을 자동화하기 위해 쉘 스크립트를 작성하려고합니다 (특히 컴퓨터가 과열되기 쉽기 때문에 CPU 온도를 몇 초마다 확인하고 너무 뜨거워지면 프로세스를 중지하십시오). 내 첫 번째 시도는 다음과 같이 작동했습니다 (간체).
make &
subpid="$!"
sleep 2
# If the CPU temperature is too high...
kill -STOP "$subpid"
sleep 2
# If the CPU temperature has dropped to safe levels...
kill -CONT "$subpid"
wait "$subpid"
불행히도 이것은 작동하지 않았다. 프로세스에 SIGSTOP을 전송해도 일시 정지되지 않았습니다 (단말기로 출력을 계속 전송함으로써 알 수 있음). 나는 달렸다make &
커맨드 라인에서 하고 SIGSTOP을 보내고 프로세스 상태를 ps
; 그것은 중지 된 것으로 표시되었으며 SIGCONT를 보낼 때 다시 시작되었지만 여전히 출력을 뿜어 내고 핵심 온도를 높이고있었습니다! Ctrl-Z를 사용하여 중지하면이 문제가 발생하지 않았지만 스크립트에서이를 수행하는 방법을 모르겠습니다.
Ctrl-Z와 다른 점은 무엇 kill -STOP
이며 쉘 스크립트에서 전자의 동작을 어떻게 얻을 수 있습니까?
make
재귀 적으로 실행되고 있습니다. 사실, 나는 그것이 몇 단계 깊숙이 간다고 생각합니다.