在使用 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
的日志就被分开放置在两个不同的文件中了。