在Debian系统中,nohup命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。默认情况下,nohup会将输出重定向到一个名为nohup.out的文件中。如果你想自定义日志格式,可以使用exec命令将标准输出和标准错误重定向到一个自定义的日志文件,并使用logger命令将日志发送到syslog,然后使用syslog-ng或rsyslog等工具来格式化日志。
以下是一个示例步骤,展示如何定制Debian系统中的nohup日志格式:
安装syslog-ng(如果尚未安装):
sudo apt-get update
sudo apt-get install syslog-ng
配置syslog-ng:
编辑/etc/syslog-ng/syslog-ng.conf文件,添加一个自定义的日志目标。例如:
destination d_custom {
file("/var/log/custom.log" template("${ISODATE} ${HOST} ${PROGRAM}: ${MSG}\n"));
};
filter f_custom {
program("your_program_name");
};
logger {
source(s_src);
destination(d_custom);
filter(f_custom);
};
重启syslog-ng服务:
sudo systemctl restart syslog-ng
使用nohup运行程序并重定向输出:
nohup your_program_name > /dev/null 2>&1 &
配置nohup将输出发送到syslog:
你可以修改/etc/profile或~/.bashrc文件,添加以下内容:
export NOHUP_OUT="/dev/log"
exec &> >(logger -t your_program_name)
重新加载shell配置:
source /etc/profile
通过以上步骤,你可以自定义Debian系统中nohup命令的日志格式。这样,你的程序输出将被记录到/var/log/custom.log文件中,并且具有你自定义的格式。