종료된 작업 복구

종료된 작업 복구

병렬 작업에 대한 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현재 쉘에 문제의 프로세스에 대한 소유권이 없기 때문입니다.예전에는)은 다른 (오래 죽은) 쉘 프로세스가 소유하고 있습니다.

관련 정보