nohup
命令用于在后台运行命令,忽略挂起(SIGHUP)信号。默认情况下,nohup
会将输出重定向到名为 nohup.out
的文件中。为了管理这个文件的大小并防止它无限增长,你可以使用日志轮转工具,如 logrotate
。
以下是如何配置 logrotate
来管理 nohup.out
文件的步骤:
-
安装 logrotate(如果尚未安装):
- 在 Debian/Ubuntu 上:
sudo apt-get install logrotate
- 在 CentOS/RHEL 上:
sudo yum install logrotate
- 在 Debian/Ubuntu 上:
-
创建 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
文件,确保日志文件不会无限增长,并且可以方便地进行归档和压缩。