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

发布时间:2024年01月22日

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

文章来源:https://blog.csdn.net/zrc_xiaoguo/article/details/135734164
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。