nohup 命令用于在后台运行命令,忽略挂起(SIGHUP)信号。默认情况下,nohup 会将输出重定向到名为 nohup.out 的文件中。为了管理这个文件的大小并防止它无限增长,你可以使用日志轮转工具,如 logrotate。
以下是如何配置 logrotate 来管理 nohup.out 文件的步骤:
安装 logrotate(如果尚未安装):
sudo apt-get install logrotate sudo yum install logrotate 创建 logrotate 配置文件: 你需要为你的应用程序创建一个 logrotate 配置文件。通常,这个文件会放在 /etc/logrotate.d/ 目录下。例如,假设你的应用程序名为 myapp,你可以创建一个名为 /etc/logrotate.d/myapp 的文件。
sudo nano /etc/logrotate.d/myapp 编辑 logrotate 配置文件: 在配置文件中,添加以下内容:
/path/to/nohup.out { daily rotate 7 compress missingok notifempty create 640 root adm } 解释:
daily: 每天轮转一次日志文件。rotate 7: 保留最近7个轮转的日志文件。compress: 压缩旧的日志文件以节省空间。missingok: 如果日志文件不存在,不会报错。notifempty: 如果日志文件为空,不进行轮转。create 640 root adm: 轮转后创建新的日志文件,权限为640,属主为root,属组为adm。测试 logrotate 配置: 你可以使用 logrotate 命令来测试配置是否正确:
sudo logrotate -f /etc/logrotate.d/myapp 这将强制执行一次日志轮转,并根据你的配置文件处理日志文件。
自动轮转: logrotate 通常会自动运行,根据 /etc/logrotate.conf 文件中的配置。你可以检查这个文件,确保它包含了正确的路径和设置。
sudo nano /etc/logrotate.conf 确保以下行没有被注释掉(即没有以 # 开头):
include /etc/logrotate.d 通过以上步骤,你可以配置 logrotate 来管理 nohup.out 文件,确保日志文件不会无限增长,并且可以方便地进行归档和压缩。