1. 程式人生 > >Linux 運行級別

Linux 運行級別

cups red wpa 不能 指定 levels 停止 登陸 svc

本文同時發表在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 運行級別