在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運行的程序。請注意,這些方法可能需要根據你的具體需求進行調整。