Bash

使用具有不同輸出的 nohup 和 time

  • May 10, 2018

我想執行一個執行檔main並將所有輸出重定向到/dev/null,同時我用它測量它的執行時間time並將結果寫入runtime.out. 由於任務很長,我還必須使用nohup.

我嘗試了以下方法:

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

這只是將所有內容輸出到runtime.out. 我不需要main將執行時的輸出保存到文件中。

time有一些東西可以用來做這個:

nohup time -o runtime.out ./main &> /dev/null &

如果它是腳本化的並且不需要 tty,我寧願使用setsidthan nohup + &,因為它更好地“守護”,並且在需要時仍然可以發送HUP信號。

setsid time -o runtime.out ./main </dev/null &>/dev/null

另請注意,這裡(如 OP 的問題)time/usr/bin/time,它的輸出格式與 bash 的內置time命令不同。如果需要,它似乎/usr/bin/time --portability給出了類似的輸出。

引用自:https://unix.stackexchange.com/questions/442805