다양한 출력에 nohup 및 time 사용

다양한 출력에 nohup 및 time 사용

실행 파일을 실행 main하고 모든 출력을 로 리디렉션 하고 . 작업이 매우 길기 때문에 전체 작업을 실행하는 데에도 사용해야 합니다 . 나는 다음을 시도했습니다. 이것은 모든 것을 ./dev/nulltimeruntime.outnohup

nohup time ./main &> /dev/null &> runtime.out &
runtime.outmain

답변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/timetime/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, 터미널로 인쇄되고, 로 리디렉션됩니다.timeruntime.outstdoutnohupstdoutstderrmain/dev/null

답변3

이것은 옳은 일을 하는 것 같습니다:

$ time > runtime.out nohup ./main &> /dev/null &

관련 정보