이는 10초 동안 휴면 상태를 유지한 후 에코되는 작은 파일입니다.
#!/bin/bash
sleep 10
echo $$
ctrl-z를 이용하여 스크립트를 실행하고 ./test
3초 정도 멈췄더니 실행에 해당하는 작업과 프로세스 그룹이 정지된 것을 볼 수 있습니다. 그러나 fg
10초 이상 실행하면 쉘이 즉시 터미널에 에코됩니다. 일을 그만둔 후에도 수면 과정이 계속되는 이유는 무엇입니까?
답변1
일을 그만둔 후에도 수면 과정이 계속되는 이유는 무엇입니까?
이는 사실이 아닙니다. "활성" 수면은 없습니다. sleep의 기능은 운영 체제에 다음을 알려주는 것입니다.
이 작업을 일시 중지하고 10초 후에 다시 활성화하십시오.
따라서 카운트다운되는 작업은 사용자의 작업이 아니라 운영 체제의 타이머입니다. Ctrl-Z를 눌러 작업을 일시 중지하면 작업이 계속 실행됩니다.
이것이 바로 제가 기대했던 행동입니다. 정지 상태에서 더 오래 자는 것이 무슨 소용이 있겠습니까? 두 주 모두 일정이 잡혀 있지 않으며 "두 번 기다리는 것"은 문제가 되지 않습니다.