在使用?nohup
?命令运行一个程序时,如果该程序本身已经通过重定向符号?>
?将输出(标准输出STDOUT)发送到特定文件中,而你又希望?nohup
?产生的日志不与原有程序的输出混合在一起,你可以分别对?nohup
?的日志输出和程序的标准输出进行独立管理。
具体做法是:
&>
?或?2>&1
?将?nohup
?的所有输出(包括标准错误 STDERR 和标准输出 STDOUT)重定向至另一个不同的文件。例如:
nohup your_command > program_output.txt 2> nohup.log &
在这个例子中:
your_command > program_output.txt
?表示将?your_command
?的标准输出重定向到?program_output.txt
?文件。2> nohup.log
?表示将?nohup
?运行过程中的标准错误(以及如果没有单独处理标准输出,则标准输出也会自动转到错误流)重定向到?nohup.log
?文件。&
?在最后表示让命令在后台运行。这样一来,程序的标准输出和?nohup
?的日志就被分开放置在两个不同的文件中了。