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

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


咨詢
建站咨詢
