springboot項(xiàng)目不輸出nohup.out日志的解決
springboot不輸出nohup.out日志
nohup java -jar mgcr_pc-0.0.1-SNAPSHOT.war >/dev/null 2>log &
注意:這個(gè)log是一個(gè)文件,可以隨意命名
ps aux|grep 你剛剛運(yùn)行的包名.jar
然后會(huì)顯示線(xiàn)程id
關(guān)閉進(jìn)程 如5555
kill -9 5555
nohup啟動(dòng)程序后,nohup.out過(guò)大的解決
一般百度到都會(huì)說(shuō):
cp /dev/null nohup.out
cat /dev/null nohup.out
不能簡(jiǎn)單的刪除那個(gè)文件,因?yàn)閘inux的文件管理是引用計(jì)數(shù)法。
可以清空nohup日志,其實(shí)關(guān)鍵在于啟動(dòng)時(shí)的流輸入方式。如果使用>方式,使用上述方法操作后,再次寫(xiě)入時(shí),文件會(huì)重新變成原來(lái)的大小,而使用>>追加方式,確實(shí)可以消除文件的大小。
原因基本描述如下:
linux的文件管理使用fd,用戶(hù)可以自定義3以上(包括3)的文件,而0,1,2,則對(duì)應(yīng)了3個(gè)標(biāo)準(zhǔn)流
- 0=標(biāo)準(zhǔn)輸入流stdin
- 1=標(biāo)準(zhǔn)輸出流stdout
- 2=標(biāo)準(zhǔn)錯(cuò)誤流stderr
shell讀取到>時(shí),判斷文件是否存在,不存在則創(chuàng)建文件,之后以w方式寫(xiě)入,文件指針只會(huì)向后增加。
因此使用>作為nohup的重定向時(shí),文件指針一直向后增加,使用上述兩個(gè)命令操作nohup.out,操作時(shí)確實(shí)重寫(xiě)了整個(gè)文件,但是在程序的下次輸出時(shí),文件的大小又重新變回原來(lái)的大小了,這很正常,因?yàn)槲募闹羔樳€在原來(lái)的大小的位置,寫(xiě)入操作時(shí),指針向后偏移“輸出內(nèi)容的大小”,并寫(xiě)入“輸出內(nèi)容”,此時(shí)文件不得不重新回到原本的大小,雖然原本的內(nèi)容已經(jīng)不見(jiàn)了(此時(shí)那些內(nèi)容的填充為0,類(lèi)似的操作一次,然后查看nohup文件的16進(jìn)制表示,就會(huì)發(fā)現(xiàn)它們?nèi)慷际?x00,可以稱(chēng)為文件空洞)
而使用>>方式寫(xiě)入文件時(shí),使用a+方式寫(xiě)入文件,文件指針指向文件的結(jié)束符EOF位置。
在使用使用上述兩個(gè)命令操作nohup.out時(shí),文件的結(jié)束符確實(shí)重新回到了0x00地址,因此可以清空原本的內(nèi)容,并且不會(huì)再創(chuàng)建文件空洞。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java程序啟動(dòng)時(shí)初始化數(shù)據(jù)的四種方式
本文主要介紹了Java程序啟動(dòng)時(shí)初始化數(shù)據(jù)的四種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02Spring?Cloud?Eureka服務(wù)注冊(cè)中心入門(mén)流程分析
這篇文章主要介紹了Spring?Cloud?Eureka服務(wù)注冊(cè)中心入門(mén)流程分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06SpringBoot基于自定義注解實(shí)現(xiàn)切面編程
這篇文章主要介紹了SpringBoot基于自定義注解實(shí)現(xiàn)切面編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Java實(shí)戰(zhàn)之用Swing實(shí)現(xiàn)通訊錄管理系統(tǒng)
今天給大家?guī)?lái)的是Java實(shí)戰(zhàn)的相關(guān)知識(shí),文章圍繞著Swing實(shí)現(xiàn)通訊錄管理系統(tǒng)展開(kāi),文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下2021-06-06基于springboot微信公眾號(hào)開(kāi)發(fā)(微信自動(dòng)回復(fù))
這篇文章主要介紹了基于springboot微信公眾號(hào)開(kāi)發(fā)(微信自動(dòng)回復(fù)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11解決java -jar XXX.jar沒(méi)有主清單屬性以及找不到或無(wú)法加載主類(lèi)的問(wèn)題
在使用Idea打包SpringBoot項(xiàng)目時(shí),可能會(huì)遇到“沒(méi)有主清單屬性”的錯(cuò)誤,問(wèn)題原因是pom文件中缺少配置,未能正確打包成可執(zhí)行的jar,解決方法包括:1. 修改項(xiàng)目結(jié)構(gòu)并重新生成jar;2. 使用Maven插件在pom文件中添加spring-boot-maven-plugin配置2024-09-09SpringBoot自定義線(xiàn)程池,執(zhí)行定時(shí)任務(wù)方式
這篇文章主要介紹了SpringBoot自定義線(xiàn)程池,執(zhí)行定時(shí)任務(wù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04SpringBoot使用Caffeine實(shí)現(xiàn)內(nèi)存緩存示例詳解
caffeine提供了四種緩存策略:分別為手動(dòng)加載、自動(dòng)加載、異步手動(dòng)加載、異步自動(dòng)加載,這篇文章主要介紹了SpringBoot使用Caffeine實(shí)現(xiàn)內(nèi)存緩存,需要的朋友可以參考下2023-06-06Spring Boot使用Value注解給靜態(tài)變量賦值的方法
這篇文章主要介紹了Spring Boot使用Value注解給靜態(tài)變量賦值的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07