병렬 작업에 대한 CPU 사용량을 제한하는 터미널 창을 실수로 닫았습니다. 이제 새 터미널 창에 있으면 ps -e S
작업이 다음과 같이 표시됩니다.
311029 pts/0 TN+ 275:25 jobname
복원할 수 있는 방법이 있나요? 나는 이것을 시도했지만 fg
이 명령이 무엇을 하는지 잘 bg
모르겠고 jobs
어쨌든 다시 작동하지 않습니다.
답변1
TN+
표시되는 출력은 ps
세 가지를 의미합니다. 이 세 문자는 "프로세스 플래그"이며 각 문자는 표시된 프로세스의 특성을 표시합니다. 전체 목록은 매뉴얼 페이지의 섹션 7에서 찾을 수 있습니다. ps
관련 부분에서는 다음과 같습니다.
T
작업 제어 신호에 의해 중지됨 포그라운드 프로세스 그룹에서
N
낮은 우선순위(다른 사용자에게 좋음)
+
여기서 관련 플래그는 T
작업이 중지되었음을 나타냅니다. 프로세스가 현재 사용 중인 터미널에 할당되지 않았기 때문에 프로세스를 다른 터미널로 오프로드하는 것은 대부분의 실제적인 목적에서는 불가능하지만 해당 상태를 알 수 있을 만큼 충분히 오랫동안 정지된 프로세스를 깨울 수 있습니다. 터미널이 사라졌습니다 SIGHUP
. 실제로 터미널인 경우 전송할 때 주의해야 합니다.가다떠나다.
먼저 다음 명령을 사용하여 프로세스를 재개해 보십시오 SIGCONT
.
$ kill -CONT 311029
둘째, 이것이 작동하는지 여부에 관계없이 SIGHUP
수동으로 보내고 자체적으로 정리되기를 바라면 노숙자 상태를 다시 주장할 수 있습니다.
$ kill -HUP 311029
fg
프로세스에 대한 조치를 취하지 않는 이유는 jobs
현재 쉘에 문제의 프로세스에 대한 소유권이 없기 때문입니다.예전에는)은 다른 (오래 죽은) 쉘 프로세스가 소유하고 있습니다.