在Debian系统中,nohup命令用于在后台运行程序,即使关闭终端也不会中断程序的执行。默认情况下,nohup会将输出重定向到一个名为nohup.out的文件中。如果你想自定义日志格式,可以使用以下方法:
-
使用
exec命令重定向输出:在启动程序之前,使用
exec命令将标准输出和标准错误重定向到一个自定义的日志文件,并使用logger命令将输出发送到syslog。例如:#!/bin/bash exec &> >(logger -t myapp -p local6.info) 2>&1 nohup your_command_here &这里,
your_command_here是你想要运行的命令。-t myapp为日志添加一个标签(tag),-p local6.info设置日志级别和设施。你可以根据需要修改这些参数。 -
使用
script命令记录输出:script命令可以用来记录终端会话中的所有输出。要使用script命令自定义日志格式,请按照以下步骤操作:-
首先,创建一个名为
myscript.sh的脚本文件,包含以下内容:#!/bin/bash LOGFILE="my_custom_log.log" exec &> >(tee -a "$LOGFILE") LOG_FORMAT="[%d/%m/%Y %H:%M:%S] [%t] %m%n" export PS1="\[$LOG_FORMAT\]\u@\h:\w\$ "这里,
my_custom_log.log是你想要保存日志的文件名。LOG_FORMAT变量定义了日志格式。你可以根据需要修改这个变量。PS1变量设置了命令提示符的格式。 -
使脚本可执行:
chmod +x myscript.sh -
使用
nohup运行脚本:nohup ./myscript.sh &
-
这样,你的自定义日志格式将被应用于nohup运行的程序。请注意,这些方法可能需要根据你的具体需求进行调整。