一、系統服務運行級別
簡單來說,運行級就是操作系統當前正在運行的功能級別。就是讓一些程序在一個級別啓動,而另外一個級別的時候不啓動。
linux共有6個運行級別:
等級0表示:表示關機
等級1表示:單用戶模式
等級2表示:無網絡連接的多用戶命令行模式
等級3表示:有網絡連接的多用戶命令行模式
等級4表示:不可用
等級5表示:帶圖形界面的多用戶模式
等級6表示:重新啓動
二、linux啓動
Linux啓動時,運行一個叫做init的程序,然後由它來啓動後面的任務,包括多用戶環境、網絡等。
init是Linux系統裏的根進程,是系統所有進程的祖先。它的主要作用是根據etc/inittab文件裏指定的一個啓動腳本(script)程序產生進程。
運行級別定義在/etc/inittab裏。這個文件通常用於控制用戶的登錄模式。
/etc/rc.d/init.d中放着各種腳本。
每個運行級別對應的文件/etc/rc.d/rcN.d中,選擇你想在該級別運行的腳本,從/etc/rc.d/init.d中鏈接過來。
/etc /
rc.d/
init.d/
halt
...
killall
mysqld
netfs
network
sshd
tomcat5
...
rc0.d/
rc1.d/
rc2.d/
rc3.d/
K20tomcat5 -> ../init.d/tomcat5
S10netword 0-> ../init.d/network
S64mysqld -> ../init.d/mysqld
rc4.d/
rc5.d/
rc6.d/
inittab文件
id:3:initdefault: #默認啓動級別 3
運行級別參照:http://vb118.blog.163.com/blog/static/173933100200961034122705/
inittab文件詳解參照:http://www.2cto.com/os/201108/98426.html
三、chkconfig命令
chkconfig命令主要用來更新(啓動或停止)和查詢系統服務的運行級信息。
謹記chkconfig不是立即自動禁止或激活一個服務,它只是簡單的改變了符號連接。
用法:
chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name <on|off|reset>
chkconfig [--level levels] name
chkconfig 沒有參數運行時,顯示用法。如果加上服務名,那麼就檢查這個服務是否在當前運行級啓動。如果是,返回true,否則返回false。如果在服務名後面指定了on,off或者reset,那麼chkconfi 會改變指定服務的啓動信息。on和off分別指服務被啓動和停止,reset指重置服務的啓動信息,無論有問題的初始化腳本指定了什麼。on和off開關,系統默認只對運行級3,4,5有效,但是reset可以對所有運行級有效。
--level選項可以指定要查看的運行級而不一定是當前運行級。
--level<等級代號> 指定讀系統服務要在哪一個執行等級中開啓或關閉。
等級0表示:表示關機
等級1表示:單用戶模式
等級2表示:無網絡連接的多用戶命令行模式
等級3表示:有網絡連接的多用戶命令行模式
等級4表示:不可用
等級5表示:帶圖形界面的多用戶模式
等級6表示:重新啓動
需要說明的是,level選項可以指定要查看的運行級而不一定是當前運行級。對於每個運行級,只能有一個啓動腳本或者停止腳本。當切換運行級時,init不會重新啓動已經啓動的服務,也不會再次去停止已經停止的服務。
chkconfig --list :顯示所有運行級系統服務的運行狀態信息(on或off)。如果指定了name,那麼只顯示指定的服務在不同運行級的狀態。
chkconfig --add name:增加一項新的服務。chkconfig確保每個運行級有一項啓動(S)或者殺死(K)入口。如有缺少,則會從缺省的init腳本自動建立。
chkconfig --del name:刪除所指定的系統服務,不再由chkconfig指令管理,並同時在系統啓動的敘述文件內刪除相關數據。
示例:
#chkconfig --add mysqld //增加mysqld服務
#chkconfig --level 35 mysqld on //在 3 5 級別上開啓mysqld服務
#chkconfig --list mysqld //列出mysqld的運行級開閉情況