Init進程是系統啓動以後的第一個用戶進程,因此它的pid(進程編號)始終爲1。init進程上來首先作的事是去讀取/etc/目錄下inittab文件中initdefault id值,這個值稱爲運行級別(run-level)。它決定了系統啓動以後運行於什麼級別。運行級別決定了系統啓動的絕大部分行爲和目的。這個級別從0到6 ,具備不一樣的功能。不一樣的運行級定義以下:
# 0 - 停機(千萬別把initdefault設置爲0,不然系統永遠沒法啓動)
# 1 - 單用戶模式
# 2 - 多用戶,沒有 NFS
# 3 - 徹底多用戶模式(標準的運行級)
# 4 – 系統保留的
# 5 - X11 (x window-就是圖形界面)
# 6 - 從新啓動 (千萬不要把initdefault 設置爲6,不然將一直在重啓 )
其中3和5是比較經常使用的運行級別spa
init.d目錄存放服務的命令文件,好比zookeepercode
rc0.d\rc1.d\rc2.d\rc3.d\rc4.d\rc5.d\rc6.d中存放的是各個運行級別須要開機啓動和關機中止服務的鏈接文件,該文件鏈接到/etc/rc.d/init.d目錄中對應的服務文件進程
拿其中一個zookeeper來講it
/etc/rc.d/init.d/zookeeper文件中有一行zookeeper
#chkconfig:2345 20 90
2345:爲主機運行的級別,表示主機運行在二、三、四、5個級別時都會啓動zookeeper,而0 、一、6級別時中止zookeepertop
20:開機啓動的優先級,要比solr的50大tab
90:關機中止的順序solr
通常設置時,先啓動,則後中止,注意不要把啓動值設置得過小,不然可能一些系統核心服務尚未啓動起來,致使你的應用沒法啓動文件
使用co
chkconfig --add zookeeper
則會在rc2.d\rc3.d\rc4.d\rc5.d中生成S20zookeeper鏈接文件,在rc0.d\rc1.d\rc6.d中生成K90zookeeper鏈接文件
S:表明啓動
K:表明中止
20:表明啓動的順序,值越小越先啓動
zookeeper:服務名字,就是/etc/rc.d/init.d中的文件名
當開機啓動的時候,執行S20zookeeper時會在命令後面添加start啓動參數
當關機中止的時候,執行K90zookeeper時會在命令後面添加stop中止參數