nohup
命令本身不提供日志轮转功能,但你可以将其输出重定向到一个文件,并使用 logrotate
工具来实现日志轮转。以下是如何配置和使用它们的步骤:
- 使用
nohup
命令将程序的输出重定向到一个文件。例如,如果你想运行名为myapp
的程序并将输出保存到名为myapp.log
的文件中,可以使用以下命令:
nohup ./myapp > myapp.log 2>&1 &
这会将标准输出和标准错误都重定向到 myapp.log
文件,并在后台运行程序。
- 创建一个
logrotate
配置文件。在你的/etc/logrotate.d/
目录下创建一个新文件,例如myapp
。在这个文件中,添加以下内容:
/path/to/myapp.log { 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
服务已启用并运行。在大多数Linux发行版中,logrotate
服务默认是启用的。你可以使用以下命令检查其状态:
sudo systemctl status logrotate
如果服务未运行,可以使用以下命令启动它:
sudo systemctl start logrotate
现在,你的程序的输出将被记录到 myapp.log
文件中,并且 logrotate
将每天自动轮转日志文件。