"깨진 파이프"로 인해 백그라운드 작업을 다시 시작하는 방법이 실패했습니다.

"깨진 파이프"로 인해 백그라운드 작업을 다시 시작하는 방법이 실패했습니다.

나는 명령이 "nohup nice"로 시작하는 백그라운드 프로세스를 실행하고 있었습니다. 보통 20시간이 걸리기 때문에 밤에 실행하게 했습니다. 그러나 오늘 아침에 "쓰기 실패: 파이프 끊어짐"이라는 메시지를 받았습니다. 아마도 서버가 너무 오랫동안 유휴 상태인 연결을 닫았기 때문일 것입니다. 서버에 다시 로그인하여 "jobs" 명령을 입력해도 작업이 없습니다. 프로그램을 처음부터 실행하는 대신 남은 부분부터 다시 시작하려면 어떻게 해야 합니까?

답변1

해당 메시지를 어디서 보았는지에 따라 다릅니다. SSH를 통해 서버에 연결하고 로컬 터미널에서 이 내용을 본다면 괜찮습니다. 프로세스는 원격 서버에서 여전히 원활하게 실행 중일 수 있습니다. 현재 셸 세션에서 실행 중인 프로세스만 표시하므로 jobs표시 되지 않습니다 . jobs서버에 다시 연결했다면 새 세션을 시작하게 되므로 jobs도움이 되지 않습니다. 실행하여 ps aux | grep ProcessName아직 실행 중인지 확인하세요.

nohup.out출력 파일에서 이 메시지를 본 경우에는 볼 수 없습니다. 재개를 지원하는 프로세스가 아니라면 그렇지 않습니다. 오류는 프로세스가 중지되었음을 의미합니다. 중지되었으므로 사라졌으므로 다시 되돌릴 방법이 없습니다.

예를 들어 이것이 입력 파일을 읽고 출력을 생성하는 경우 언제 중지되었는지 파악하고 나머지 줄만 입력으로 제공하여 다시 실행할 수 있습니다. 하지만 언제 중지되었는지에 대한 기록이 없기 때문에 마법처럼 다시 시작하도록 지시할 수 있는 트릭은 없습니다.

관련 정보