将 nohup 输出重定向到另一个文件

将 nohup 输出重定向到另一个文件

我正在一台服务器上使用 nohup 运行命令,输出文件变得太大,我预测该过程需要额外执行一个月才能完成。有没有办法在进程运行时更改 nohup 输出文件?

答案1

主意其中一条评论中给出的内容通常就是所做的事情,即使到另一个问题的链接有错误的(且不被接受的)答案。

要在 POSIX shell 中截断文件,请使用:

cat /dev/null > _name_of_file_

不像cp链接中的一个答案所暗示的那样。当然,如果您想先保存旧文件,您可能希望将其复制到不同的文件系统或远程位置。

用低级术语来说,区别在于您要打开现存的文件及其索引节点并截断它。看http://man7.org/linux/man-pages/man2/open.2.htmlO_TRUNC选项。

其他一些在特殊情况下起作用的东西。我有时会检查/etc/logrotate.d(或其他一些合适的日志轮换程序)以查看如何交换文件。某些命令(例如 apache2)有一个reload命令会导致其加载配置文件并在此过程中重新打开日志文件。

答案2

刚刚发现这个简洁的小实用程序,使我能够将输出重定向到另一个文件,现在一切正常。该实用程序称为 reredirect,可以在以下位置找到:https://github.com/jerome-pouiller/reredirect/

一个简单的命令,例如:reredirect -m FILE PID完成工作。

相关内容