nohup
命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行
使用 nohup
和 >
重定向标准输出到文件:
nohup your_command > output.log 2>&1 &
这里,your_command
是你要运行的命令。output.log
是一个文件,用于存储标准输出。2>&1
表示将标准错误(文件描述符 2)重定向到标准输出(文件描述符 1),&
表示将整个命令放入后台运行。
使用 nohup
和 tee
命令同时输出到文件和终端:
nohup your_command | tee output.log &
这里,tee
命令会将标准输出同时显示在终端上并写入 output.log
文件。&
表示将整个命令放入后台运行。
使用 nohup
和 logrotate
工具管理日志文件:
如果你的程序产生大量日志,可以使用 logrotate
工具来自动管理日志文件。首先,创建一个名为 logrotate.conf
的配置文件,包含以下内容:
/path/to/output.log {
size 100M
rotate 5
compress
missingok
notifempty
create 0640 user group
}
这里,size 100M
表示当日志文件达到 100MB 时进行轮转;rotate 5
表示保留 5 个轮转日志文件;compress
表示压缩旧日志文件;missingok
表示如果日志文件不存在,不会报错;notifempty
表示如果日志文件为空,不进行轮转;create 0640 user group
表示创建新的日志文件,权限为 0640,属主为用户,属组为组。
然后,在运行 nohup
命令时,将标准输出重定向到日志文件:
nohup your_command > /path/to/output.log 2>&1 &
最后,将 logrotate
添加到系统的定时任务(如 cron
)中,以便定期执行日志轮转。
通过这些方法,你可以优化 nohup
命令的输出重定向,以便更好地管理程序的输出和日志。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: linux部署k8s需要哪些依赖