新聞中心
一個 Linux 服務(wù)就是一個在后臺長期運(yùn)行、可獨(dú)立控制和管理、可以響應(yīng)操作系統(tǒng)事件(例如啟停)和用戶請求(例如查詢狀態(tài))等功能模塊化組件。chkconfig 指令用于將腳本加入系統(tǒng)服務(wù)列表;
作為一名Java開發(fā)者,我們經(jīng)常需要在Linux服務(wù)器上部署我們的應(yīng)用程序。而如果想要讓我們的Java程序像其他系統(tǒng)服務(wù)一樣能夠隨著系統(tǒng)啟動自動運(yùn)行,并且支持類似于systemctl start/stop/restart/status等命令進(jìn)行管理,那么就需要將其打包成一個標(biāo)準(zhǔn)的Linux服務(wù)。

創(chuàng)新互聯(lián)公司專注于安康企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都做商城網(wǎng)站。安康網(wǎng)站建設(shè)公司,為安康等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
今天我來給大家分享一下如何將Java程序打包成一個標(biāo)準(zhǔn)的Linux服務(wù),并實(shí)現(xiàn)開機(jī)自動啟動。相信這對于很多剛接觸Linux或者剛開始學(xué)習(xí)Java應(yīng)用部署的小伙伴們都會有所幫助。
首先,讓我們來了解一下什么是Linux服務(wù)。簡單地說,一個 Linux 服務(wù)就是一個在后臺長期運(yùn)行、可獨(dú)立控制和管理、可以響應(yīng)操作系統(tǒng)事件(例如啟停)和用戶請求(例如查詢狀態(tài))等功能模塊化組件。
那么怎樣才能將 Java 程序打包成 Linux 服務(wù)呢?以下是具體步驟:
1. 編寫腳本文件
創(chuàng)建 shell 腳本文件 /etc/init.d/my-service.sh ,該腳本負(fù)責(zé)執(zhí)行 Java 應(yīng)用程序并提供諸如 start/stop/restart/status 等命令入口。具體內(nèi)容可以參考下面的示例:
#!/bin/sh
# chkconfig: 345 99 10
# description: my-service
APP_NAME=my-service
APP_HOME=/opt/myapp
case $1 in
start)
echo "Starting $APP_NAME ..."
cd $APP_HOME/bin && ./startup.sh &
;;
stop)
echo "Stopping $APP_NAME ..."
cd $APP_HOME/bin && ./shutdown.sh &
;;
restart)
sh "$0" stop
sleep 5
sh "$0" start
;;
status)
pid=`ps -ef | grep java | grep -v grep | awk '{print \$2}'`
if [ ! -z "\$pid" ]; then
echo "$APP_NAME is running with PID:\$pid"
else
echo "$APPP_NAME is not running"
exit 1;
fi;;
*)
echo $"Usage: \$0 {start|stop|restart|status}"
exit 1;; esac
其中,chkconfig 指令用于將腳本加入系統(tǒng)服務(wù)列表;description 指令則是對該服務(wù)進(jìn)行簡單描述。
2. 將腳本文件復(fù)制到 /etc/init.d 目錄下
sudo cp /path/to/my-service.sh /etc/init.d/
3. 設(shè)置啟動級別,并更新服務(wù)列表
sudo chmod +x /etc/init.d/my-service.sh #添加執(zhí)行權(quán)限
sudo chkconfig --add my-service #加入系統(tǒng)自啟動項
sudo chkconfig --level 345 my-service on #設(shè)置開機(jī)自啟
4. 啟動/停止/重啟/查詢狀態(tài)服務(wù)
使用 systemctl 命令來控制 Linux 系統(tǒng)服務(wù)。例如:
sudo systemctl start my-service #啟動服務(wù)
sudo systemctl stop my-service #停止服務(wù)
sudo systemctl restart my-service #重啟服務(wù)
sudo systemctl status my-service #查詢狀態(tài)
至此,我們已經(jīng)成功將 Java 應(yīng)用程序打包成一個標(biāo)準(zhǔn)的 Linux 服務(wù),并實(shí)現(xiàn)了開機(jī)自動啟動。相信通過以上步驟,大家對于如何在 Linux 系統(tǒng)上部署 Java 應(yīng)用程序會更加得心應(yīng)手。
總結(jié)一下,本文主要介紹了如何將 Java 程序打包成一個標(biāo)準(zhǔn)的 Linux 服務(wù),并實(shí)現(xiàn)了開機(jī)自動啟動。希望這篇文章能夠幫助到那些正在學(xué)習(xí)或者需要在 Linux 上部署 Java 應(yīng)用程序的小伙伴們。如果您有任何問題或者建議,請隨時留言給我哦!
標(biāo)題名稱:教你如何將Java程序作為Linux服務(wù)并實(shí)現(xiàn)開機(jī)自動啟動
當(dāng)前地址:http://m.fisionsoft.com.cn/article/cojdoop.html


咨詢
建站咨詢
