在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运行的程序。请注意,这些方法可能需要根据你的具体需求进行调整。