新聞中心
Linux 如何關(guān)閉 jar 服務(wù)

創(chuàng)新互聯(lián)建站長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為靖邊企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),靖邊網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
在開發(fā)和部署環(huán)境中,Java 程序運(yùn)行的方式很多,其中一種是使用 jar 包來運(yùn)行,這種方式非常方便和靈活,同時(shí)也存在一些弊端,例如當(dāng)需要關(guān)閉服務(wù)時(shí)就需要學(xué)會(huì)如何正確地關(guān)掉該服務(wù)。在 Linux 環(huán)境下,我們可以通過多種方式來關(guān)閉正在運(yùn)行的 jar 服務(wù),這篇文章將為您介紹幾種實(shí)用的方法。
關(guān)閉服務(wù)前的準(zhǔn)備
在關(guān)閉 jar 服務(wù)之前,我們需要先了解該服務(wù)的運(yùn)行情況,包括服務(wù)運(yùn)行的端口號(hào)和進(jìn)程 ID??梢酝ㄟ^以下命令來查看正在運(yùn)行的 jar 服務(wù):
“`
ps -ef | grep java
“`
該命令會(huì)列出所有正在運(yùn)行的 Java 進(jìn)程,其中包括 jar 服務(wù)。我們可以根據(jù)服務(wù)運(yùn)行時(shí)的參數(shù)和 jar 包名稱來確定需要關(guān)閉的服務(wù)進(jìn)程。例如,運(yùn)行以下命令可以檢索名稱中包含關(guān)鍵字 “my-service” 的服務(wù)進(jìn)程:
“`
ps -ef | grep “my-service”
“`
該命令將返回所有包含 “my-service” 關(guān)鍵字的進(jìn)程信息,其中包括進(jìn)程 ID 和監(jiān)聽的端口號(hào),這些信息將在關(guān)閉服務(wù)時(shí)被用到。
方法一:手動(dòng)關(guān)閉服務(wù)
之一種關(guān)閉方式是最簡單的,也是最暴力的方法,我們可以使用 kill 命令來結(jié)束正在運(yùn)行的 jar 服務(wù)進(jìn)程。具體步驟如下:
1. 根據(jù)之一步所述方法,查找到需要關(guān)閉的 jar 服務(wù)進(jìn)程 ID;
2. 執(zhí)行以下命令結(jié)束該進(jìn)程:
“`
kill -9
“`
在該命令中,-9 參數(shù)會(huì)強(qiáng)制結(jié)束該進(jìn)程,無論該進(jìn)程是否在執(zhí)行中。
該方法看似簡單,但有一個(gè)明顯的缺點(diǎn),即如果使用錯(cuò)誤的進(jìn)程 ID,可能會(huì)誤殺其他正在運(yùn)行的進(jìn)程,進(jìn)而造成損失。
方法二:使用 killall 命令
第二種關(guān)閉方式是使用 killall 命令,該命令可以根據(jù)進(jìn)程的名稱來關(guān)閉正在運(yùn)行的所有進(jìn)程。以下是具體步驟:
1. 根據(jù)之一步所述方法,查找到需要關(guān)閉的 jar 服務(wù)進(jìn)程的名稱;
2. 執(zhí)行以下命令結(jié)束該進(jìn)程:
“`
killall -9 java
“`
該命令會(huì)關(guān)閉所有名為 java 的進(jìn)程,包括我們需要關(guān)閉的 jar 服務(wù)進(jìn)程。
與方法一相比,該方法需要注意的問題是該命令會(huì)關(guān)閉所有名為 java 的進(jìn)程,如果有其他名為 java 的進(jìn)程正在運(yùn)行,也會(huì)被關(guān)閉。
方法三:使用 fuser 命令
第三種關(guān)閉方式是使用 fuser 命令,該命令可以根據(jù)端口號(hào)來查找正在運(yùn)行的進(jìn)程,并關(guān)閉它。以下是具體步驟:
1. 根據(jù)之一步所述方法,查找到需要關(guān)閉的 jar 服務(wù)進(jìn)程的端口號(hào);
2. 執(zhí)行以下命令結(jié)束該進(jìn)程:
“`
fuser -k /tcp
“`
在該命令中,-k 參數(shù)表示強(qiáng)制結(jié)束該進(jìn)程, 表示該服務(wù)所監(jiān)聽的端口號(hào),/tcp 表示使用 TCP 協(xié)議。(如果該服務(wù)使用的是 UDP 協(xié)議,則需要在命令中指定 -udp 參數(shù))
該方法的優(yōu)點(diǎn)是可以精確地查找到運(yùn)行服務(wù)的進(jìn)程,不會(huì)誤殺其它進(jìn)程。但是需要注意的是,如果該端口號(hào)被多個(gè)進(jìn)程共用,那么這些進(jìn)程都將被關(guān)閉。
方法四:使用 pkill 命令
第四種關(guān)閉方式是使用 pkill 命令,該命令可以根據(jù)進(jìn)程名和其他參數(shù)來查找并關(guān)閉正在運(yùn)行的進(jìn)程。以下是具體步驟:
1. 根據(jù)之一步所述方法,查找到需要關(guān)閉的 jar 服務(wù)進(jìn)程的名稱、運(yùn)行參數(shù)等信息;
2. 執(zhí)行以下命令結(jié)束該進(jìn)程:
“`
pkill -f
“`
在該命令中,-f 參數(shù)允許我們根據(jù)進(jìn)程名或運(yùn)行參數(shù)來查找進(jìn)程并關(guān)閉它。
該方法的優(yōu)點(diǎn)是可以精確查找到要關(guān)閉的進(jìn)程,并且不會(huì)誤殺其他進(jìn)程。
方法五:使用 Systemd 管理服務(wù)
第五種關(guān)閉方式是使用 Systemd 管理服務(wù),這種方式需要我們?cè)谶\(yùn)行 jar 服務(wù)時(shí)配置 Systemd 服務(wù),從而實(shí)現(xiàn)對(duì)服務(wù)的管理和維護(hù)。以下是具體步驟:
1. 在 /etc/systemd/system/ 目錄下創(chuàng)建一個(gè)新的服務(wù)文件,例如 my-service.service,并添加以下內(nèi)容:
“`
[Unit]
Description=My Service
After=network.service
[Service]
User=leon
WorkingDirectory=/home/leon/my-service
ExecStart=/usr/bin/java -jar /home/leon/my-service/my-service.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
“`
在該文件中,需要配置服務(wù)的描述、依賴、運(yùn)行用戶、運(yùn)行目錄、啟動(dòng)命令等信息。其中,ExecStart 配置的命令是啟動(dòng)服務(wù)的命令,SuccessExitStatus 配置的是服務(wù)成功退出的狀態(tài)碼。
2. 執(zhí)行以下命令啟動(dòng)服務(wù):
“`
systemctl start my-service.service
“`
執(zhí)行該命令后,我們可以通過以下方式來檢查服務(wù)是否成功運(yùn)行:
“`
systemctl status my-service.service
“`
3. 執(zhí)行以下命令來關(guān)閉服務(wù):
“`
systemctl stop my-service.service
“`
該命令會(huì)關(guān)閉服務(wù),并清理所有相關(guān)的進(jìn)程和資源。我們也可以通過以下命令來重啟服務(wù):
“`
systemctl restart my-service.service
“`
該方式的優(yōu)點(diǎn)是可以實(shí)現(xiàn)對(duì)服務(wù)的全面管控,并且可以方便地進(jìn)行開機(jī)自啟等操作。
相關(guān)問題拓展閱讀:
- ideajar包一鍵上傳如何停止原來jar包
ideajar包一鍵上傳如何停止原來jar包
Linux運(yùn)行和停止jar包的方法
1 背景
Java項(xiàng)目開發(fā)完畢打好jar包,就需要把該jar包上傳到Linux上去運(yùn)行,如果老哥使用Windows當(dāng)我沒說?(? ???ω??? ?)?。
我們想到的可能就是通過 java -jar platform-scm-v108.jar 的方式來運(yùn)行jar包,程序運(yùn)行正常,但是運(yùn)行期間窗口被鎖定。當(dāng)我們關(guān)閉窗口或Ctrl + C打斷程序運(yùn)行時(shí),程序就會(huì)退出;停止時(shí)會(huì)先通過 ps -ef | grep platform-scm-v108.jar 找出jar包的進(jìn)程,然后再kill掉。這樣太繁瑣了,下面就根據(jù)線上經(jīng)驗(yàn)總結(jié)下jar優(yōu)雅啟動(dòng)、停止的步驟:
2 Linux啟動(dòng)jar包的方式
2.1 簡單后臺(tái)啟動(dòng)
java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 &
說明:& 表示后臺(tái)運(yùn)行,ssh窗口不被鎖定,但是關(guān)閉窗口時(shí),程序還是會(huì)退出;
2.2 不掛斷后臺(tái)啟動(dòng)
nohup java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 &
說明:nohup 表示不掛斷運(yùn)行命令行,當(dāng)賬號(hào)退出或關(guān)閉終端時(shí),程序仍然運(yùn)行,當(dāng)用 nohup 命令執(zhí)行作業(yè)時(shí),該作業(yè)的所有輸出被重定向到nohup.out的文件中,除非另外指定了輸出文件。
2.3 不掛斷后臺(tái)啟動(dòng)并重定向日志
nohup java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 >李梁/data/platform/log/platform-scm.txt &
說明:> /data/platform/log/platform-scm.txt platform-scm.txt文件中
3 停止jar包
3.1 簡單兩步走
ps -ef | grep platform-scm-v108.jar
# 找到對(duì)應(yīng)的進(jìn)程然后殺掉
kill -9 進(jìn)程號(hào)
說明 :枯擾悉分兩步,操作繁瑣;
3.2 一條指沒乎令停止法
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v ‘grep’ `
說明:兩次使用管道,排除其他進(jìn)程,直接殺掉相應(yīng)的進(jìn)程。
4 線上環(huán)境腳本參考
4.1 啟動(dòng)腳本
nohup java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 &
4.2 停止腳本
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v ‘grep’ `
4.3 重啟腳本
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v ‘grep’ `
sleep 2
nohup java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 &
sleep 2
tail -f nohup.out
可通過下面的方法停止原來的jar包:
1.打包
IDEA–maven–package
左側(cè)targe–xxx.jar文件(塌鋒廳還有一個(gè)原始jar包)(可以選擇直接在IDEA里面基頌運(yùn)行jar包)
2.啟動(dòng)程序,復(fù)制xxx.jar到相應(yīng)目錄,來到相應(yīng)目錄下,在地址欄輸入cmd并回車,進(jìn)入命令行
3.運(yùn)行
java -jar xxx.jar
4.來到瀏覽器地址欄輸入相應(yīng)的團(tuán)隱url,回車查看結(jié)果
localhost:端口號(hào)/方法路徑?參數(shù)=王菲
5.終止程序,回到命令行
6.運(yùn)行
linux下關(guān)閉jar服務(wù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux下關(guān)閉jar服務(wù),Linux如何關(guān)閉jar服務(wù),ideajar包一鍵上傳如何停止原來jar包的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
標(biāo)題名稱:Linux如何關(guān)閉jar服務(wù)(linux下關(guān)閉jar服務(wù))
文章源于:http://m.fisionsoft.com.cn/article/djposjo.html


咨詢
建站咨詢
