一、nohup不輸出日誌配置輸出
nohup是一個常用的在linux/unix系統下的後台運行命令,使用nohup命令後,即使用戶退出終端,程序也會繼續運行,並且nohup命令會自動把程序的標準輸出和標準錯誤輸出重定向到nohup.out文件中,但是這種方式有些時候並不是我們所需的。為了不輸出日誌,我們需要配置nohup命令,可以有如下兩種方式:
1. 在nohup命令後添加「&>/dev/null」:這種方式會將程序的標準輸出和標準錯誤輸出都重定向到系統的「垃圾桶」中,從而達到不輸出日誌的效果。
nohup command &>/dev/null &
2. 重定向到自定義的文件:這種方式會將程序的標準輸出和標準錯誤輸出重定向到一個自定義的文件中,從而達到不輸出日誌的效果。可以按照如下代碼進行配置:
# 創建日誌文件 touch my.log # 使用nohup命令執行程序,並將程序的標準輸出重定向到my.log文件中 nohup command >my.log 2>&1 &
二、nohup日誌選取
在使用nohup命令時,有一些與nohup不輸出日誌相關的日誌,這裡選取一些常用的與nohup不輸出日誌相關的日誌進行詳細的講解:
1. nohup.out:nohup命令默認情況下會將程序的標準輸出和標準錯誤輸出重定向到nohup.out文件中,如果不需要輸出日誌,可以將nohup.out文件刪除或者清空。
# 刪除nohup.out文件 rm nohup.out # 清空nohup.out文件 > nohup.out
2. /var/log/syslog:系統日誌是記錄系統各種事件的重要文件,其中包括應用程序的日誌信息,而當我們通過nohup命令後台運行程序時,程序的日誌信息就會被寫入到syslog文件中。如果需要查找應用程序的日誌信息,可以在syslog文件中進行搜索或者查看。
# 查找包含nohup的相關日誌信息 grep "nohup" /var/log/syslog
3. /var/log/messages:與syslog相似,messages也是記錄系統的事件信息,但是它記錄的是一些非內核級別的事件,如網絡日誌、郵件日誌、系統服務日誌等,當我們使用nohup命令後台運行的程序出現問題時,可能會在messages中記錄相關的錯誤信息。
# 查找包含nohup的相關日誌信息 grep "nohup" /var/log/messages
三、結合實例講解nohup不輸出日誌
下面給出一個使用nohup命令的具體實例,並講解如何不輸出日誌。
在linux服務器上有一個測試程序test.py,代碼如下:
import time while True: print('hello world') time.sleep(1)
如果我們想要在後台運行該程序並且不輸出日誌,可以使用如下命令:
# 使用nohup命令執行程序,並將標準輸出和標準錯誤輸出重定向到自定義的文件my.log中 nohup python test.py >my.log 2>&1 &
執行完成後,該程序就會在後台運行,不輸出日誌。
四、總結
nohup命令的使用是我們在linux/unix系統下開發和運維工作中經常要用到的,通過對nohup不輸出日誌的配置與實現的詳細講解,我們可以更好地理解nohup命令的功能和作用,從而更加高效地使用該命令。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/188294.html