Linux 實(shí)現(xiàn)指定服務(wù)開機(jī)自啟

本教程介紹在CentOS 7服務(wù)器上實(shí)現(xiàn)指定服務(wù)開機(jī)自啟。

1.用sh腳本實(shí)現(xiàn)啟動服務(wù)


vim itService-start.sh # 編輯腳本,內(nèi)容如下:

#!/bin/sh

DIR=$(cd "$(dirname "$0")" && pwd) # cd 到腳本所在的目錄,并把路徑賦值給DIR?

classPath=$DIR/itservice-0.1.jar # 把要運(yùn)行的jar包賦值給classPath

mainClass=s.com.wkh.ItService #?把主函數(shù)入口賦值給classPath

shLogPath=$DIR/sh_start.log # 把啟動腳本日志賦值給shLogPath

jps | grep ItService | awk "{print \$1}" | xargs kill -9 >/dev/null 2>&1 # 獲取該服務(wù)的進(jìn)程號并強(qiáng)制結(jié)束進(jìn)程

nohup java -cp "$classPath" "$mainClass" >"$shLogPath" & # 后臺運(yùn)行jar包

jps # 顯示當(dāng)前所有java進(jìn)程pid

至此就可以用itService-start.sh啟動該服務(wù)了。

2.注冊成一個系統(tǒng)服務(wù)


服務(wù)腳本必須存放在/etc/ini.d/目錄下;

vim /etc/init.d/itservice # 編輯腳本,內(nèi)容如下:

#!/bin/sh

### BEGIN INIT INFO

# Provides:? ? ? ? ? itservice

# Default-Start:? ? 2 3 4 5

# Default-Stop:? ? ? 0 1 6

# Description:? ? ? itservice

### END INIT INFO

RETVAL=0

tdir=/root/itService

pidof=`jps | grep ItService | awk '{print \$1}'`

case "$1" in

start)

if [ -z "$pidof" ];then

echo "Starting ItService..."

$tdir/itService-start.sh

else

echo "ItService already running"

fi

RETVAL=$?

;;

stop)

echo "Stopping ItService..."

[ -z "$pidof" ] && echo "ItService not running..." || kill $pidof

RETVAL=$?

;;

restart)

echo "Stopping ItService..."

echo "Starting ItService..."

$tdir/itService-start.sh

RETVAL=$?

;;

status)

[ -z "$pidof" ] && echo "ItService not running..." || echo "ItService running with pid $pidof"

RETVAL=$?

;;

*)

echo "Usage: /etc/init.d/itservice {start|stop|restart|status}"

RETVAL=$?

;;

esac

exit $RETVAL

至此腳本寫完,用chkconfig --add itservice注冊成一個系統(tǒng)服務(wù),此時服務(wù)會被在/etc/rc.d/rcN.d中賦予K/S入口,然后可以用service?itservice?start來啟動了。

3.用chkconfig設(shè)置開機(jī)自啟


chkconfig --level 35 itservice on

--level<等級代號>  指定讀系統(tǒng)服務(wù)要在哪一個執(zhí)行等級中開啟或關(guān)畢。

等級0表示:表示關(guān)機(jī)

等級1表示:單用戶模式

等級2表示:無網(wǎng)絡(luò)連接的多用戶命令行模式

等級3表示:有網(wǎng)絡(luò)連接的多用戶命令行模式

等級4表示:不可用

等級5表示:帶圖形界面的多用戶模式

等級6表示:重新啟動

4.常見問題


1.sh沒有執(zhí)行權(quán)限,解決方案:chmod 700 itService-start.sh

2.chkconfig --add servicename時遇到service xxx does not support chkconfig,解決方案:必須把下面兩行注釋放在/etc/init.d/itservice文件靠前的注釋中:

# Default-Start:? ? 2 3 4 5

# Default-Stop:? ? ? 0 1 6

PS: 不在腳本所在目錄執(zhí)行sh時要注意工作目錄的問題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容