実行可能ファイルを実行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 &