프로그램이 언제 끝나는지 알고 싶습니다. 하지만 항상 같은 시간을 보여줍니다. 이것은 내 쉘 스크립트입니다. 하지만 항상 START TIME
같은 모습을 보여줍니다 END TIME
.
START=$(date +"%r")
nohup Rscript program_1.R >program_1.Rout & wait & echo START TIME = $START\n END TIME = " `date +"%r"`";
답변1
문제는 &
이 명령을 사용하여 백그라운드에서 구분된 명령을 실행할 때마다 다음 명령이 즉시 시작된다는 것입니다.그리고대신 첫 번째 명령뒤쪽에그것. 귀하의 질문은 nohup
아무 관련이 없습니다. 즉, 상위 쉘이 종료될 때 계속 실행 중인 프로그램은 종료되지 않고 계속 실행되어야 함을 의미합니다. 문제가 있으면 다음과 같이 시도해보십시오.
nohup /bin/bash -s <<< "date; your-script.sh ; date " >& all-output.txt &
그러면 백그라운드에서 작업과 출력 타이밍이 실행되고 모든 출력이 지정된 파일로 리디렉션됩니다.
그런데, 런타임에만 관심이 있다면 그렇게 해야 합니다.
nohup /bin/bash -s <<< "time your-script.sh " >& all-output.txt &