淺談在Linux中如何將腳本做成系統(tǒng)服務(wù)開機(jī)自啟動(dòng) 存在一些情況,我們需要將某些腳本作為系統(tǒng)服務(wù)來運(yùn)行。 比如:Tomcat、MongoDB等,如果每次手動(dòng)cd指定目錄下啟動(dòng)腳本。 一是比較麻煩,二是這些服務(wù)一般需要開機(jī)自啟動(dòng)。 這個(gè)時(shí)候?qū)⒛_本寫成服務(wù)就方便使用,可以直接service 服務(wù)名 start。 不需要手動(dòng)敲出來復(fù)雜的文件路徑。 提示: 以下操作設(shè)計(jì)到Linux的運(yùn)行級(jí)別概念。 請(qǐng)參數(shù)--->淺談Linux系統(tǒng)中的7種運(yùn)行級(jí)別。 案例: 下面給出一個(gè)比較簡(jiǎn)單的案例 1、 #!/bin/bash #chkconfig:2345 66 77 #description:custom case '$1' in start) echo '啟動(dòng)$0服務(wù)!' ;; stop) echo '停止$0服務(wù)!' ;; restart|reload) $0 stop $0 start ;; *) echo '用法:$0 {start|stop|restart}' esac ~ 注意: #chkconfig 2345 66 77 #description:custom 這兩行信息是固定的寫法。 (1)、#chkconfig 2345 66 77: 2345 :表示的運(yùn)行級(jí)別(即:/etc/rc.d/rc2.d~rc5.d) 66:S(start),優(yōu)先級(jí) 77:K(kill),優(yōu)先級(jí) (2)、#description:此腳本的描述 2、 將腳本復(fù)制到/etc/init.d文件夾 原由: 執(zhí)行完步驟3后會(huì)產(chǎn)生一系列的軟連接文件 這些軟連接文件實(shí)際指向/etc/init.d/下腳本文件 [root@kingdom shellFile]# cp custom.sh /etc/init.d/ [root@kingdom shellFile]# cd /etc/init.d/ [root@kingdom init.d]# ls 3、 將腳本添加到chkconfig [root@kingdom shellFile]# chkconfig --add custom.sh [root@kingdom shellFile]# chkconfig --list | grep custom.sh //這里的2 3 4 5跟我們腳本中定義的是一致的 custom.sh 0:off 1:off 2:on 3:on 4:on 5:on 6:off 此時(shí)在 2 3 4 5對(duì)應(yīng)的/etc/rc.d/rc2.d~rc5.d目錄中已經(jīng)產(chǎn)生了相應(yīng)的鏈接文件 這些鏈接文件實(shí)際是指向步驟2中的/etc/init.d/下腳本文件 以級(jí)別3為例 # ls /etc/rc.d/rc3.d/ ll S66custom.sh -> ../init.d/custom.sh 測(cè)試 [root@kingdom ~]# service custom.sh start 啟動(dòng)/etc/init.d/custom.sh服務(wù)! [root@kingdom ~]# service custom.sh stop 停止/etc/init.d/custom.sh服務(wù)! [root@kingdom ~]# service custom.sh restart 停止/etc/init.d/custom.sh服務(wù)! 啟動(dòng)/etc/init.d/custom.sh服務(wù)! 補(bǔ)充chkconfig的一些用法: //查看服務(wù)列表 chkconfig [--list] [--type type][name] //添加服務(wù) chkconfig --add name //刪除服務(wù) chkconfig --del name //設(shè)置服務(wù)運(yùn)行級(jí)別 chkconfig [--level levels] [--type type] name 歡迎大家給予寶貴的意見或者建議。 歡迎大家補(bǔ)充或者共享一些其他的方法。 感謝支持。 |
|