nohup运行的命令中本身有>符号进行文件输出,而原有程序也有>进行文件输出,这样如何保证nohup运行的日志不输入到原有程序使用>输出的文件中呢?

在使用 nohup 命令运行一个程序时,如果该程序本身已经通过重定向符号 > 将输出(标准输出STDOUT)发送到特定文件中,而你又希望 nohup 产生的日志不与原有程序的输出混合在一起,你可以分别对 nohup 的日志输出和程序的标准输出进行独立管理。

具体做法是:

  1. 确保你的命令行中,程序自身的输出重定向明确指向所需的文件。
  2. 使用 &> 或 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 的日志就被分开放置在两个不同的文件中了。

你可能感兴趣的:(服务器,nohup,后台运行脚本)