완료하는 데 몇 시간이 걸리는 스크립트(Laravel 프로젝트에서)를 실행하고 있습니다. nohup
SSH 세션 연결이 끊길 때 종료되는 것을 방지합니다.
nohup php artisan do:thing 2>&1 | tee ~/tmp
정상적으로 시작되지만 잠시 후 파이프 파손 오류가 발생하여 콘텐츠 출력이 중지되고 tee
중지됩니다. 문서는 해당 시점에서 중지됩니다.
tee
SSH 세션 삭제로 인해 프로세스가 종료되었기 때문인 것 같습니다 . 멈출 수 있나요?
티 프로세스를 거부하고 ssh가 티 프로세스를 종료하는 것을 방지할 수 있습니까?
답변1
nohup
첫 번째 명령에 적용됩니다 . 셸을 닫으면 tee
더 이상 일반 출력을 쓸 수 없습니다(표준 출력) 그리고 종료합니다. 이로 인해 더 이상 파이프된 출력을 쓸 수 없으므로 첫 번째 명령이 종료됩니다.
이 시도
nohup php artisan do:thing >~/tmp 2>&1
또는 가지고 있는 경우 screen
,
screen sh -c 'php artisan do:thing 2>&1 | tee ~/tmp'