실행 파일을 실행 main
하고 모든 출력을 로 리디렉션 하고 . 작업이 매우 길기 때문에 전체 작업을 실행하는 데에도 사용해야 합니다 . 나는 다음을 시도했습니다. 이것은 모든 것을 ./dev/null
time
runtime.out
nohup
nohup time ./main &> /dev/null &> runtime.out &
runtime.out
main
답변1
time
이 목적으로 사용할 수 있는 몇 가지 사항이 있습니다.
nohup time -o runtime.out ./main &> /dev/null &
setsid
스크립트가 가능하고 tty가 필요하지 않은 경우 에는 더 잘 "보호"하고 nohup + &
필요할 때 계속 신호를 보낼 수 있으므로 대신 사용하고 싶습니다 .HUP
setsid time -o runtime.out ./main </dev/null &>/dev/null
또한 OP의 질문에서와 같이 출력 형식이 bash의 내장 명령과 다르다는 time
점에 유의하십시오. 필요한 경우 유사한 출력을 제공 하는 것 같습니다./usr/bin/time
time
/usr/bin/time --portability
답변2
몇 번의 시행착오를 거쳐 영감을 얻었습니다.bash 시간에 nohup 사용하기, 나는 다음을 생각해 냈습니다.
$ nohup bash -c 'time ./main &> /dev/null' > runtime.out &
[1] 23178
nohup: ignoring input and redirecting stderr to stdout
$
[1]+ Done nohup bash -c 'time ./main &> /dev/null' > runtime.out
$ cat runtime.out
real 0m0.004s
user 0m0.002s
sys 0m0.002s
그러면 로 리디렉션되고 stdout
, 터미널로 인쇄되고, 로 리디렉션됩니다.time
runtime.out
stdout
nohup
stdout
stderr
main
/dev/null
답변3
이것은 옳은 일을 하는 것 같습니다:
$ time > runtime.out nohup ./main &> /dev/null &