在 CentOS 系统中,nohup
命令用于在后台运行程序,即使关闭终端也不会中断。默认情况下,nohup
会将输出重定向到名为 nohup.out
的文件中。如果你想自定义日志格式,可以使用 shell 脚本或命令行工具来实现。
以下是一个简单的示例,展示了如何使用 nohup
和 logrotate
自定义日志格式:
my_app.sh
的 shell 脚本,用于启动你的应用程序:#!/bin/bash
# my_app.sh
# 设置日志文件路径
LOG_FILE="/path/to/your/custom.log"
# 将标准输出和标准错误重定向到日志文件
exec >> "$LOG_FILE" 2>&1
# 在这里启动你的应用程序
./your_application
确保脚本具有可执行权限:
chmod +x my_app.sh
nohup
命令运行脚本:nohup ./my_app.sh &
这将使你的应用程序在后台运行,并将输出重定向到自定义日志文件 custom.log
。
logrotate
以自动管理日志文件。创建一个名为 /etc/logrotate.d/my_app
的配置文件:/path/to/your/custom.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root root
}
这个配置表示每天轮换日志文件,保留最近 7 天的日志,压缩旧日志文件,如果日志文件不存在则不报错,如果日志文件为空则不轮换,以及设置新日志文件的权限和所有者。
现在,你的应用程序将在后台运行,并使用自定义日志格式。同时,logrotate
将自动管理日志文件。