SSH를 통해 상당히 오래 지속되는 스크립트(30분 이상 실행 가능)를 시작하고 해당 StdOut/StdErr 및 반환 코드를 수집해야 합니다.
프로세스가 서버의 리소스를 차지하고 네트워크 문제로 인해 세션이 닫힐 수 있으므로 동일한 SSH 세션에서 프로세스가 끝날 때까지 기다리지 않으려면 프로세스를 시작하고 세션 연결을 끊은 다음 결과를 확인하는 것이 좋습니다. 나중에.
나는 이것이 관련이 있을 것이라고 생각했지만 nohup
SSH 세션에서 이 작업을 수행하면 다음과 같습니다.
(somelongrunningscript.sh >test.out 2>test.err; echo $? >test.rc) & exit 0
세션이 닫힌 후에도 스크립트는 계속 실행됩니다. 서브쉘을 사용하지 않아도 계속 실행됩니다.
somelongrunningscript.sh >test.out 2>test.err & exit 0
(단, 반품코드를 수집할 수 없습니다.)
그러면 제공된 보호 없이 스크립트가 계속 실행되는 이유는 무엇입니까 nohup
? 내가 뭐 놓친 거 없니? 나만 운이 좋은 걸까?