淺談在Linux中如何将腳本做成系統服務開機自啟動
存在一些情況,我們需要将某些腳本作為系統服務來運行。
比如:Tomcat、MongoDB等,如果每次手動cd指定目錄下啟動腳本。
一是比較麻煩,二是這些服務一般需要開機自啟動。
這個時候将腳本寫成服務就方便使用,可以直接service 服務名 start。
不需要手動敲出來複雜的文件路徑。
提示:
以下操作設計到Linux的運行級别概念。
請參數--->淺談Linux系統中的7種運行級别。
案例:
下面給出一個比較簡單的案例
1、
#!/bin/bash
#chkconfig:2345 66 77
#description:custom
case "$1" in
start)
echo "啟動$0服務!"
;;
stop)
echo "停止$0服務!"
;;
restart|reload)
$0 stop
$0 start
;;
*)
echo "用法:$0 {start|stop|restart}"
esac
~
注意:
#chkconfig 2345 66 77
#description:custom
這兩行信息是固定的寫法。
(1)、#chkconfig 2345 66 77:
2345 :表示的運行級别(即:/etc/rc.d/rc2.d~rc5.d)
66:S(start),優先級
77:K(kill),優先級
(2)、#description:此腳本的描述
2、 将腳本複制到/etc/init.d文件夾
原由:
執行完步驟3後會産生一系列的軟連接文件
這些軟連接文件實際指向/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
此時在 2 3 4 5對應的/etc/rc.d/rc2.d~rc5.d目錄中已經産生了相應的鍊接文件
這些鍊接文件實際是指向步驟2中的/etc/init.d/下腳本文件
以級别3為例
# ls /etc/rc.d/rc3.d/
ll
S66custom.sh -> ../init.d/custom.sh
測試
[root@kingdom ~]# service custom.sh start
啟動/etc/init.d/custom.sh服務!
[root@kingdom ~]# service custom.sh stop
停止/etc/init.d/custom.sh服務!
[root@kingdom ~]# service custom.sh restart
停止/etc/init.d/custom.sh服務!
啟動/etc/init.d/custom.sh服務!
補充chkconfig的一些用法:
//查看服務列表
chkconfig [--list] [--type type][name]
//添加服務
chkconfig --add name
//删除服務
chkconfig --del name
//設置服務運行級别
chkconfig [--level levels] [--type type] name
歡迎大家給予寶貴的意見或者建議。
歡迎大家補充或者共享一些其他的方法。
感謝支持。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!