nohup不輸出nohup.out日誌資訊,已解決。
最近專案中使用的springboot打的jar包,放到伺服器上跑,為了防止關閉終端視窗導致程式掛掉,採用nohup和&組合命令來操作
命令如下 :
nohup java -jar test.jar &
但是這種方式啟動專案會預設生成一個nohup.out的檔案來記錄日誌,而且這個檔案太佔磁碟記憶體了,幾天下來發現這個檔案大小有好幾個G,所以為了減少磁碟被大量消耗,決定啟動專案時不輸出nohup.out檔案。
解決方案如下:
只輸出錯誤資訊到日誌檔案
nohup java -jar yourProject.jar >/dev/null 2>log &
什麼資訊也不要
nohup java -jar yourProject.jar >/dev/null 2>&1 &
下面是幾個註解:
使用&後臺執行程式:
結果會輸出到終端
使用Ctrl + C傳送SIGINT訊號,程式免疫
關閉session傳送SIGHUP訊號,程式關閉
使用nohup執行程式:
結果預設會輸出到nohup.out
使用Ctrl + C傳送SIGINT訊號,程式關閉
關閉session傳送SIGHUP訊號,程式免疫
檔案描述符
當執行shell命令時,會預設開啟3個檔案,每個檔案有對應的檔案描述符來方便我們使用:
所以我們平時在執行shell命令中,都預設是從鍵盤獲得輸入,並且將結果輸出到控制檯上。但是我們可以通過更改檔案描述符預設的指向,從而實現輸入輸出的重定向。比如我們將1指向檔案,那麼標準的輸出就會輸出到檔案中。
輸出重定向
輸出重定向的使用方式很簡單,基本的一些命令如下:
-
/dev/null
這條命令的作用是將標準輸出1重定向到/dev/null中。 /dev/null代表linux的空裝置檔案,所有往這個檔案裡面寫入的內容都會丟失,俗稱“黑洞”。那麼執行了>/dev/null之後,標準輸出就會不再存在,沒有任何地方能夠找到輸出的內容。
- 2>&1
這條命令用到了重定向繫結,採用&可以將兩個輸出繫結在一起。這條命令的作用是錯誤輸出將和標準輸出同用一個檔案描述符,說人話就是錯誤輸出將會和標準輸出輸出到同一個地方。
linux在執行shell命令之前,就會確定好所有的輸入輸出位置,並且從左到右依次執行重定向的命令,所以>/dev/null 2>&1的作用就是讓標準輸出重定向到/dev/null中(丟棄標準輸出),然後錯誤輸出由於重用了標準輸出的描述符,所以錯誤輸出也被定向到了/dev/null中,錯誤輸出同樣也被丟棄了。執行了這條命令之後,該條shell命令將不會輸出任何資訊到控制檯,也不會有任何資訊輸出到檔案中。
相關文章
- Linux nohup 啟動服務且不輸出日誌Linux
- linux 中的 nohup 命令(設定後臺程式): nohup: ignoring input and appending output to ‘nohup.out’LinuxAPP
- 另一種列印輸出日誌資訊的方式
- C++簡單日誌/debug除錯資訊輸出C++除錯
- python如何輸出日誌?Python
- python日誌重複輸出Python
- 伺服器事務日誌已滿解決方法伺服器
- 9 個技巧,解決 K8s 中的日誌輸出問題K8S
- laravel5.7 不記錄 sql 報錯日誌,自定義日誌資訊LaravelSQL
- 啟動tomcat時,日誌裡大量輸出建立資料來源dataSource的日誌Tomcat
- 排查log4j不輸出日誌到檔案的問題
- C#按照日期輸出程式日誌C#
- Java 如何正確地輸出日誌Java
- 指令碼日誌的標準輸出指令碼
- 操作日誌記錄(包括輸出至自定義日誌檔案)
- After Effects出現“最後日誌訊息報警”該怎麼解決
- logrus hook輸出日誌到本地磁碟Hook
- Robotframework-ride 日誌輸出中文亂碼FrameworkIDE
- 在 pycharm 裡通過 pytest 執行用例,控制檯沒有輸出日誌資訊PyCharm
- logback下日誌輸出前處理操作——以日誌脫敏為例
- Spring AOP實現統一日誌輸出Spring
- 使用Log4j2輸出日誌演示
- log4j2分層輸出日誌
- log4j日誌輸出級別(轉)
- python怎麼將列印輸出日誌檔案Python
- linux自動清理Docker標準輸出日誌LinuxDocker
- (定時)任務輸出重定向到日誌
- 失敗登入行為輸出至alert日誌
- 如何利用NLog輸出結構化日誌,並在Kibana優雅分析日誌?
- 將程式碼中的除錯資訊輸出到日誌檔案中除錯
- Web實時日誌輸出檢視管理系統Web
- 如何使用 loguru 接管程式的所有日誌輸出?
- logback 日誌輸出格式
- C++ cout列印輸出 (解決輸出亂碼)C++
- gitlab Clone Pull Push 日誌資訊Gitlab
- 輸出資訊法(Debug)
- Loguru:Python 日誌終極解決方案Python
- SpringBoot通過yml和xml檔案配置日誌輸出Spring BootXML