Linux 運行級別
本文同時發表在https://github.com/zhangyachen/zhangyachen.github.io/issues/47
運行級別
不同運行級別的描述
運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動
運行級別1:單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS,NFS就是網絡文件系統)
運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制臺命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制臺,登陸後進入圖形GUI模式
運行級別6:系統正常關閉並重啟,默認運行級別不能設為6,否則不能正常啟動
註意:ubuntu系統下,運行級別2-5提供的服務是一樣的,即2-5級別沒有差別,所以ubuntu系統下0表示關機,1表示維護模式,2-5表示GUI界面的系統,6表示重啟系統。
修改默認的運行級別
如果想要修改默認的運行級別,修改/etc/inittab文件。( ubuntu系統默認沒有/etc/inittab文件,在/etc/init/rc-sysinit.conf文件中指定了默認運行級別。)
id:3:initdefault:
將數字改為需要的運行級別即可。
不同運行級別之間的 差別的在於系統默認起動的服務的不同。例如運行級別1會關閉網絡服務,運行級別3默認不啟動X圖形界面服務,而運行級別5卻默認起動。
runlevel命令
[root@localhost ~]# runlevel
N 3
使用runlevel命令可以顯示前次和當前的運行級別,中間使用空格符隔開,如果沒有前次運行級別則顯示N。例如,系統默認運行級別是2,且用戶沒有切換過運行級別,那麽運行runlevel命令後,系統顯示為N 2。如果當前運行級別為2,用戶使用init 3切換到運行級別3,那麽runlevel命令顯示為2 3。
rcN.d目錄和init.d目錄
每個運行級別在/etc下都對應一個rcN.d目錄,N的範圍是0-6。系統啟動時,根據默認的運行級別執行相應rcN.d目錄下的服務。為了管理方便,該目錄下所有的服務實際是軟鏈接到/etc/init.d目錄下相應的腳本文件。由init.d目錄下的腳本文件完成服務的啟動和關閉功能。
rcN.d目錄下文件的格式為:[SK]NNname。S表示啟動該服務,K表示關閉該服務;NN表示啟動順序號,最小的數字最先被啟動,最大的數字最後被啟動。name表示服務名稱。
[root@localhost etc]# cd rc3.d/ [root@localhost rc3.d]# ls K01smartd K15httpd K69rpcsvcgssd K76ypbind K89rdisc S02lvm2-monitor S12rsyslog S23NetworkManager S26acpid S64mysqld S90crond K02oddjobd K30spice-vdagentd K73winbind K84wpa_supplicant K92pppoe-server S08ip6tables S13cpuspeed S24nfslock S26haldaemon S80postfix S95atd K05wdaemon K50dnsmasq K74ntpd K86cgred K95firstboot S08iptables S13irqbalance S24rpcgssd S26udev-post S82abrt-ccpp S97rhnsd K10psacct K50kdump K75cgconfig K87restorecond K95rdma S10network S13rpcbind S25blk-availability S28autofs S82abrtd S97rhsmcertd K10saslauthd K60nfs K75ntpdate K88sssd K99rngd S11auditd S15mdmonitor S25cups S50bluetooth S84php-fpm S99certmonger K15htcacheclean K61nfs-rdma K75quota_nld K89netconsole S01sysstat S11portreserve S22messagebus S25netfs S55sshd S85nginx S99local
[root@localhost rc0.d]# ll
total 0
lrwxrwxrwx. 1 root root 20 Apr 5 18:20 K01certmonger -> ../init.d/certmonger
lrwxrwxrwx. 1 root root 16 Apr 5 18:23 K01smartd -> ../init.d/smartd
lrwxrwxrwx. 1 root root 17 Apr 5 18:20 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx. 1 root root 19 Apr 5 18:20 K02rhsmcertd -> ../init.d/rhsmcertd
lrwxrwxrwx. 1 root root 15 Apr 5 18:19 K03rhnsd -> ../init.d/rhnsd
lrwxrwxrwx. 1 root root 13 Apr 5 18:20 K05atd -> ../init.d/atd
lrwxrwxrwx. 1 root root 17 Apr 5 18:25 K05wdaemon -> ../init.d/wdaemon
我們註意到,在運行級別為3的時候,nginx服務默認是啟動的。
[root@localhost rc3.d]# ls | grep nginx
S85nginx
如果想要開機時不啟動nginx,輸入下列命令:
[root@localhost rc3.d]# chkconfig nginx off
則nginx服務開機時就不自動啟動了。
[root@localhost rc3.d]# ls | grep nginx
K15nginx
chkconfig
用來更新(啟動或停止)和查詢系統服務的運行級信息
chkconfig [--list] [--type type][name]
chkconfig --add name
chkconfig --del name
chkconfig --override name
chkconfig [--level levels] [--type type] name <on|off|reset|resetpriorities>
chkconfig [--level levels] [--type type] name
具體用法見http://roclinux.cn/?p=51 或者 man chkconfig
參考資料:http://blog.csdn.net/luomoweilan/article/details/20290165
Linux 運行級別