在Linux中,nohup
命令用于在后臺運行程序,即使關閉終端或斷開連接,程序也會繼續運行。默認情況下,nohup
會將輸出重定向到名為nohup.out
的文件中。如果你想自定義日志格式,可以使用以下方法:
使用exec
命令重定向輸出:
在啟動程序之前,使用exec
命令將標準輸出和標準錯誤重定向到一個自定義的日志文件,并使用logger
命令來設置日志格式。例如:
#!/bin/bash
exec &> >(logger -t myapp -p local6.info)
nohup your_command &
這里,-t myapp
設置了日志的標簽為myapp
,-p local6.info
設置了日志的優先級為local6.info
。你可以根據需要修改這些參數。
使用script
命令記錄會話:
script
命令可以用來記錄終端會話。你可以使用它來記錄nohup
命令的輸出,并自定義日志格式。例如:
script -q -c "nohup your_command &" myapp_log.txt
這里,-q
選項表示靜默模式,-c
選項后面跟著要執行的命令。輸出將被記錄到myapp_log.txt
文件中。
使用tee
命令實時查看和記錄日志:
你可以使用tee
命令將nohup
的輸出同時顯示在終端并記錄到自定義格式的日志文件中。例如:
nohup your_command 2>&1 | tee >(sed 's/^/[$(date)] /' >> myapp_log.txt)
這里,sed
命令用于在每行開頭添加當前日期和時間。你可以根據需要修改sed
命令來自定義日志格式。
請注意,這些方法可能需要根據你的具體需求進行調整。在實際使用中,你可能需要嘗試不同的方法,以找到最適合你的場景的解決方案。