国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

CentOS統(tǒng)的7個(gè)運(yùn)行級別的含義

2017-02-11 22:25:37 9187

CentOS系統(tǒng)有7個(gè)運(yùn)行級別(runlevel)

運(yùn)行級別就是操作系統(tǒng)當(dāng)前正在運(yùn)行的功能級別。級別是從06,具有不同的功能。這些級別定義在/ect/inittab文件中。這個(gè)文件是init程序?qū)ふ业闹饕募?,最先運(yùn)行的服務(wù)是那些放在/etc/rc.d目錄下的文件。

 

#查看系統(tǒng)運(yùn)行級別

[root@bin2ctyun ~]# cat /etc/inittab

# inittab is only used by upstart for the default runlevel.

#

# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

#

# System initialization is started by /etc/init/rcS.conf

#

# Individual runlevels are started by /etc/init/rc.conf

#

# Ctrl-Alt-delete is handled by /etc/init/control-alt-delete.conf

#

# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,

# with configuration in /etc/sysconfig/init.

#

# For information on how to write upstart event handlers, or how

# upstart works, see init(5), init(8), and initctl(8).

#

# Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this)

#   運(yùn)行級別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級別不能設(shè)為0,否則不能正常啟動(dòng)

#   1 - Single user mode

#   運(yùn)行級別1:單用戶工作狀態(tài),root權(quán)限,用于系統(tǒng)維護(hù),禁止遠(yuǎn)程登陸

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   運(yùn)行級別2:多用戶狀態(tài)(沒有NFS)

#   3 - Full multiuser mode

#   運(yùn)行級別3:完全的多用戶狀態(tài)(有NFS),登陸后進(jìn)入控制臺命令行模式

#   4 - unused

#   運(yùn)行級別4:系統(tǒng)未使用,保留

#   5 - X11

#   運(yùn)行級別5:X11控制臺,登陸后進(jìn)入圖形GUI模式

#   6 - reboot (Do NOT set initdefault to this)

#   運(yùn)行級別6:系統(tǒng)正常關(guān)閉并重啟,默認(rèn)運(yùn)行級別不能設(shè)為6,否則不能正常啟動(dòng)

#

id:3:initdefault:

# 表示運(yùn)行級別3,是默認(rèn)的。

 

運(yùn)行級別的原理:

1、在目錄/etc/rc.d/init.d下有許多服務(wù)器腳本程序,一般稱為服務(wù)(service)

[root@bin2ctyun init.d]# ls /etc/rc.d/init.d/

auditd                    halt          lvm2-monitor  nginx    rdisc        single

blk-availability          ip6tables     mysql         ntpd     restorecond  sshd

cloud-set-guest-password  iptables      netconsole    ntpdate  rsyslog      sysstat

crond                     killall       netfs         php-fpm  sandbox      udev-post

functions                 lvm2-lvmetad  network       postfix  saslauthd    xe-linux-distribution

 

2、在/etc/rc.d下有7個(gè)名為rcN.d的目錄,對應(yīng)系統(tǒng)的7個(gè)運(yùn)行級別

[root@bin2ctyun init.d]# ls /etc/rc.d/

init.d  rc  rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d  rc.local  rc.sysinit

 

3、rcN.d目錄下都是一些符號鏈接文件,這些鏈接文件都指向init.d目錄下的service腳本文件,命名規(guī)則為K+nn+服務(wù)名或S+nn+服務(wù)名,其中nn為兩位數(shù)字。

[root@bin2ctyun rc3.d]# ll /etc/rc.d/rc3.d

總用量 0

lrwxrwxrwx  1 root root 19 11月 14 09:35 K10saslauthd -> ../init.d/saslauthd

lrwxrwxrwx. 1 root root 20 11月 13 16:22 K50netconsole -> ../init.d/netconsole

lrwxrwxrwx  1 root root 14 3月  16 13:53 K74ntpd -> ../init.d/ntpd

lrwxrwxrwx  1 root root 17 3月  16 13:53 K75ntpdate -> ../init.d/ntpdate

lrwxrwxrwx. 1 root root 21 11月 13 16:22 K87restorecond -> ../init.d/restorecond

lrwxrwxrwx  1 root root 15 11月 14 09:34 K89rdisc -> ../init.d/rdisc

lrwxrwxrwx  1 root root 18 3月  25 12:20 K92iptables -> ../init.d/iptables

lrwxrwxrwx  1 root root 17 4月   1 22:36 S01sysstat -> ../init.d/sysstat

lrwxrwxrwx  1 root root 22 3月  25 12:20 S02lvm2-monitor -> ../init.d/lvm2-monitor

lrwxrwxrwx  1 root root 19 3月  25 12:20 S08ip6tables -> ../init.d/ip6tables

lrwxrwxrwx  1 root root 17 3月  25 12:18 S10network -> ../init.d/network

lrwxrwxrwx. 1 root root 16 11月 13 16:23 S11auditd -> ../init.d/auditd

lrwxrwxrwx  1 root root 17 3月  25 12:19 S12rsyslog -> ../init.d/rsyslog

lrwxrwxrwx. 1 root root 31 11月 14 09:05 S14xe-linux-distribution -> ../init.d/xe-linux-distribution

lrwxrwxrwx  1 root root 26 3月  25 12:20 S25blk-availability -> ../init.d/blk-availability

lrwxrwxrwx  1 root root 15 3月  25 12:18 S25netfs -> ../init.d/netfs

lrwxrwxrwx  1 root root 19 3月  25 12:18 S26udev-post -> ../init.d/udev-post

lrwxrwxrwx  1 root root 17 4月   1 22:36 S50php-fpm -> ../init.d/php-fpm

lrwxrwxrwx  1 root root 15 3月  16 16:07 S55nginx -> ../init.d/nginx

lrwxrwxrwx  1 root root 14 3月  25 12:20 S55sshd -> ../init.d/sshd

lrwxrwxrwx  1 root root 15 3月  16 15:24 S64mysql -> ../init.d/mysql

lrwxrwxrwx  1 root root 17 4月   1 22:36 S80postfix -> ../init.d/postfix

lrwxrwxrwx  1 root root 15 4月   1 22:36 S90crond -> ../init.d/crond

lrwxrwxrwx  1 root root 34 11月 14 09:29 S98cloud-set-guest-password -> ../init.d/cloud-set-guest-password

lrwxrwxrwx  1 root root 11 3月  25 12:18 S99local -> ../rc.local

 

4、系統(tǒng)會(huì)根據(jù)指定的運(yùn)行級別進(jìn)入對應(yīng)的rcN.d目錄,并按照文件名順序檢索目?下的鏈接文件

  • 對于以K開頭的文件,系統(tǒng)將終止對應(yīng)的服務(wù)

  • 對于以S開頭的文件,系統(tǒng)將啟動(dòng)對應(yīng)的服務(wù)

 

5、查看運(yùn)行級別用:runlevel

[root@bin2ctyun rc3.d]# runlevel

N 3

 

6、進(jìn)入其它運(yùn)行級別用:init N

 

7、注意如果輸入 init 0 則為關(guān)機(jī),init 6為重啟系統(tǒng)

 

Linux運(yùn)行級別的配置

cat /etc/inittab

可以看到最后一行 id:3:initdefault: 各字段解釋如下 id:runlevels:action:process

id:是一個(gè)任意指定的四個(gè)字符以內(nèi)的序列標(biāo)號,在本文件內(nèi)必須唯一;使用老版本的libc5(低于5.2.18)或a.out庫編譯出來的sysvinit限制為2字符。注意:像getty之類的登陸進(jìn)程必須使id字段與tty編號一致,如tty1需要id=1,許多老版本的登陸進(jìn)程都遵循這種規(guī)則。

runlevels:表示這一行適用于運(yùn)行那個(gè)/些級別(這里是3,可以有多個(gè),表示在相應(yīng)的運(yùn)行級均需要運(yùn)行);另外sysinit、boot、bootwait這三個(gè)進(jìn)程會(huì)忽略這個(gè)設(shè)置值。

action:表示進(jìn)入對應(yīng)的runlevels時(shí),init應(yīng)該運(yùn)行process字段的命令的方式,常用的字段值及解釋在附錄內(nèi)。例子中的wait表示需要運(yùn)行這個(gè)進(jìn)程一次并等待其結(jié)束。

process:具體應(yīng)該執(zhí)行的命令。例子中的/etc/init.d/rc命令啟動(dòng)運(yùn)行級別3中應(yīng)該運(yùn)行的進(jìn)程/命令,并負(fù)責(zé)在退出運(yùn)行級時(shí)將其終止(當(dāng)然在進(jìn)入的runlevel中仍要運(yùn)行的程序除外。)當(dāng)運(yùn)行級別改變,并且正在運(yùn)行的程序并沒有在新的運(yùn)行級別中指定需要運(yùn)行,那么init會(huì)先發(fā)送一個(gè)SIGTERM信號終止,然后是SIGKILL。

有效的action值如下:

respawn:表示init應(yīng)該監(jiān)視這個(gè)進(jìn)程,即使其結(jié)束后也應(yīng)該被重新啟動(dòng)。

waitinit應(yīng)該運(yùn)行這個(gè)進(jìn)程一次,并等待其結(jié)束后再進(jìn)行下一步操作。 onceinit需要運(yùn)行這個(gè)進(jìn)程一次。 boot:隨系統(tǒng)啟動(dòng)運(yùn)行,所以runlevel值對其無效。 bootwait:隨系統(tǒng)啟動(dòng)運(yùn)行,并且init應(yīng)該等待其結(jié)束。 off 沒有任何意義。

initdefault:系統(tǒng)啟動(dòng)后的默認(rèn)運(yùn)行級別;由于進(jìn)入相應(yīng)的運(yùn)行級別會(huì)激活對應(yīng)級別的進(jìn)程,所以對其指定process字段沒有任何意義。如果inittab文件內(nèi)不存在這一條記錄,系統(tǒng)啟動(dòng)時(shí)在控制臺上詢問進(jìn)入的運(yùn)行級。 sysinit:系統(tǒng)啟動(dòng)時(shí)準(zhǔn)備運(yùn)行的命令。比如說,這個(gè)命令將清除/tmp??梢圆榭?/span>/etc/rc.d/rc.sysinit腳本了解其運(yùn)行了那些操作。 powerwait:允許init在電源被切斷時(shí),關(guān)閉系統(tǒng)。當(dāng)然前提是有U P S和監(jiān)視U P S并通知init電源已被切斷的軟件?RH linux默認(rèn)沒有列出該選項(xiàng)。 powerfail:同powerwait,但init不會(huì)等待正在運(yùn)行的進(jìn)程結(jié)束。RH linux默認(rèn)沒有列出該選項(xiàng)。 powerokwait:當(dāng)電源監(jiān)視軟件報(bào)告電源恢復(fù)時(shí),init要執(zhí)行的操作。

powerfailnow:檢測到ups電源即將耗盡時(shí),init要執(zhí)行的操作,和powerwait/powerfail不同的喲。

ctrlaltdel:允許init在用戶于控制臺鍵盤上按下C t r l + A l t + Del組合鍵時(shí),重新啟動(dòng)系統(tǒng)。注意,如果該系統(tǒng)放在一個(gè)公共場所,系統(tǒng)管理員可將C t r l + A l t + Del組合鍵配置為別的行為,比如忽略等。我是設(shè)置成打印一句罵人的話了^o^。 kbrequest:監(jiān)視到特定的鍵盤組合鍵被按下時(shí)采取的動(dòng)作,現(xiàn)在還不完善。 ondemandA process marked with an ondemand runlevel will be executed whenever the specifiedondemand runlevel is called. However, no runlevel change will occur(ondemand runlevels are ‘a(chǎn)’, ‘b’,and ‘c’

 

補(bǔ)救措施:

如果您的機(jī)器進(jìn)入了這樣一種狀態(tài),系統(tǒng)由于損壞的/etc/inittab而不能boot,由于受損的/etc/passwd而不能登入,或者干脆就是忘記了口令。怎么辦?

1 LILO boot 提示符下鍵入 linux 1 boot進(jìn)入單用戶模式,這是一個(gè)幾乎沒有裝載任何服務(wù)的狀態(tài),您可以在提供的shell下執(zhí)行修復(fù)命令。

2 在啟動(dòng)后的 lilo 提示符下輸入: init=/bin/sh rw 就可以使機(jī)器進(jìn)入運(yùn)行級1 并把 root 文件系統(tǒng)掛為讀寫。他會(huì)跳過所有系統(tǒng)認(rèn)證, 讓你使用passwd 程序 來改變root口令,然后啟動(dòng)到一個(gè)新的運(yùn)行級。

2法的區(qū)別:

單用戶模式和傳入init=/bin/sh 是不同的 單用戶模式會(huì)做rc.sysinit的初始化,就是系統(tǒng)的最基本初始化,比如檢查文件系統(tǒng),開啟swap,加載模塊,等等而傳入init=/bin/sh 則不做任何初始化,只是給你個(gè)shell而已。


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: