《LINUX學習:漫談傳統(tǒng)的 Linux 初始化系統(tǒng)的運行級別》要點:
本文介紹了LINUX學習:漫談傳統(tǒng)的 Linux 初始化系統(tǒng)的運行級別,希望對您有用。如果有疑問,可以聯(lián)系我們。
了解運行級別是如何配置的,如何轉(zhuǎn)變系統(tǒng)運行級別以及修改對應(yīng)狀態(tài)下運行的服務(wù).
在 Linux 系統(tǒng)中,運行級別run level是指運維的級別,用于描述一種注解什么服務(wù)是可用的系統(tǒng)運行狀態(tài).
運行級別 1 是嚴格限制的,僅僅用于系統(tǒng)維護;該級別下,網(wǎng)絡(luò)連接將弗成操作,但是管理員可以通過控制臺連接登錄系統(tǒng).
其他運行級其余系統(tǒng)允許任何人登錄和使用,但是不同級別中可使用的服務(wù)不同.本文將探索如何配置運行級別,如何交互式改變系統(tǒng)運行級別以及修改該狀態(tài)下可用的服務(wù).
Linux 系統(tǒng)的默認運行狀態(tài)是一個在系統(tǒng)開機時使用的運行級別(除非有其他的指示),它通常是在 /etc/inittab
文件中進行設(shè)置裝備擺設(shè)的,該文件內(nèi)容通常如下:
id:3:initdefault
包含 Debian 系統(tǒng)在內(nèi)的一些系統(tǒng),默認運行級別為 2,而不是上述文件中的 3,甚至都沒有 /etc/inittab
文件.
運行級別在默認情況下是如何被配置,其配置依賴于你所運行的 Linux 操作系統(tǒng)的具體發(fā)行版本. 例如,在某些系統(tǒng)中, 運行級別 2 是多用戶模式,運行級別 3 是多用戶模式并支持 NFS (網(wǎng)絡(luò)文件系統(tǒng)). 在另外一些系統(tǒng),運行級別 2 - 5 基原形同,運行級別 1 是單用戶模式.例如,Debian 系統(tǒng)的所用運行級別如下:
在 Linux 系統(tǒng)上,運行級別 3 用于共享文件系統(tǒng)給其它系統(tǒng),可以便利地只通過改變系統(tǒng)的運行級別來啟動和停止文件系統(tǒng)共享.系統(tǒng)從運行級別 2 改變到 3 系統(tǒng)將允許文件系統(tǒng)共享,反之從運行級別 3 改變到 2 則系統(tǒng)不支持文件系統(tǒng)共享.
在某個運行級別中,系統(tǒng)運行哪些進程依賴于目錄 /etc/rc?.d
目錄的內(nèi)容,此中 ?
可以是 2、 3、 4 或 5 (對應(yīng)于相應(yīng)的運行級別).
在以下示例中(Ubuntu 系統(tǒng)),由于這些目錄的配置是雷同的,我們將看見上述 4 個級別對應(yīng)的目錄中的內(nèi)容是一致的.
/etc/rc2.d$ ls
README S20smartmontools S50saned S99grub-common
S20kerneloops S20speech-dispatcher S70dns-clean S99ondemand
S20rsync S20sysstat S70pppd-dns S99rc.local
/etc/rc2.d$ cd../rc3.d
/etc/rc3.d$ ls
README S20smartmontools S50saned S99grub-common
S20kerneloops S20speech-dispatcher S70dns-clean S99ondemand
S20rsync S20sysstat S70pppd-dns S99rc.local
/etc/rc3.d$ cd../rc4.d
/etc/rc4.d$ ls
README S20smartmontools S50saned S99grub-common
S20kerneloops S20speech-dispatcher S70dns-clean S99ondemand
S20rsync S20sysstat S70pppd-dns S99rc.local
/etc/rc4.d$ cd../rc5.d
/etc/rc5.d$ ls
README S20smartmontools S50saned S99grub-common
S20kerneloops S20speech-dispatcher S70dns-clean S99ondemand
S20rsync S20sysstat S70pppd-dns S99rc.local
這些都是什么文件?它們都是指向 /etc/init.d
目錄下用于啟動服務(wù)的腳本符號連接. 這些文件的文件名是至關(guān)重要的, 因為它們決定了這些腳本文件的執(zhí)行次序,例如, S20 腳本是在 S50 腳本前面運行的.
$ ls-l
total 4
-rw-r--r--1 root root 677Feb162016 README
lrwxrwxrwx 1 root root 20Aug3014:40 S20kerneloops ->../init.d/kerneloops
lrwxrwxrwx 1 root root 15Aug3014:40 S20rsync ->../init.d/rsync
lrwxrwxrwx 1 root root 23Aug3016:10 S20smartmontools ->../init.d/smartmontools
lrwxrwxrwx 1 root root 27Aug3014:40 S20speech-dispatcher ->../init.d/speech-dispatcher
lrwxrwxrwx 1 root root 17Aug3114:12 S20sysstat ->../init.d/sysstat
lrwxrwxrwx 1 root root 15Aug3014:40 S50saned ->../init.d/saned
lrwxrwxrwx 1 root root 19Aug3014:40 S70dns-clean ->../init.d/dns-clean
lrwxrwxrwx 1 root root 18Aug3014:40 S70pppd-dns ->../init.d/pppd-dns
lrwxrwxrwx 1 root root 21Aug3014:40 S99grub-common ->../init.d/grub-common
lrwxrwxrwx 1 root root 18Aug3014:40 S99ondemand ->../init.d/ondemand
lrwxrwxrwx 1 root root 18Aug3014:40 S99rc.local->../init.d/rc.local
如你所想,目錄 /etc/rc1.d
因運行級別 1 的特殊而不同.它包括的符號鏈接指向非常不同的一套腳本. 同樣也要注意到其中一些腳本以 K
開頭命名,而另一些與其它運行級別腳本一樣以 S
開頭命名.這是因為當系統(tǒng)進入單用戶模式時, 一些服務(wù)需要停止. 然而這些 K 開頭的符號鏈接指向了其它級別 S 開頭的符號鏈接的同一文件時, K(kill)表示這個腳本將以指示其停止的參數(shù)執(zhí)行,而不是以啟動的參數(shù)執(zhí)行.
/etc/rc1.d$ ls-l
total 4
lrwxrwxrwx 1 root root 20Aug3014:40 K20kerneloops ->../init.d/kerneloops
lrwxrwxrwx 1 root root 15Aug3014:40 K20rsync ->../init.d/rsync
lrwxrwxrwx 1 root root 15Aug3014:40 K20saned ->../init.d/saned
lrwxrwxrwx 1 root root 23Aug3016:10 K20smartmontools ->../init.d/smartmontools
lrwxrwxrwx 1 root root 27Aug3014:40 K20speech-dispatcher ->../init.d/speech-dispatcher
-rw-r--r--1 root root 369Mar122014 README
lrwxrwxrwx 1 root root 19Aug3014:40 S30killprocs ->../init.d/killprocs
lrwxrwxrwx 1 root root 19Aug3014:40 S70dns-clean ->../init.d/dns-clean
lrwxrwxrwx 1 root root 18Aug3014:40 S70pppd-dns ->../init.d/pppd-dns
lrwxrwxrwx 1 root root 16Aug3014:40 S90single ->../init.d/single
你可以轉(zhuǎn)變系統(tǒng)的默認運行級別,盡管這很少被用到.例如,通過修改前文中提到的 /etc/inittab
文件,你能夠配置 Debian 系統(tǒng)的默認運行級別為 3 (而不是 2),以下是該文件示例:
id:3:initdefault:
一旦你改動完成并重啟系統(tǒng), runlevel
命令將顯示如下:
$ runlevel
N 3
另外一種可選方式,使用 init 3
命令,你也能轉(zhuǎn)變系統(tǒng)運行級別(且無需重啟立即生效), runlevel
命令的輸出為:
$ runlevel
23
當然,除非你修改了系統(tǒng)默認級別的 /etc/rc?.d
目錄下的符號鏈接,使得系統(tǒng)默認運行在一個修改的運行級別之下,否則很少必要通過創(chuàng)建或修改 /etc/inittab
文件改變系統(tǒng)的運行級別.
?
為了扼要重述在系統(tǒng)中如何使用運行級別,下面有幾個關(guān)于運行級其余快速問答問題:
若何查詢系統(tǒng)當前的運行級別?
使用 runlevel
敕令.
如何查看特定運行級別所聯(lián)系關(guān)系的服務(wù)進程?
查看與該運行級別聯(lián)系關(guān)系的運行級別開始目錄(例如, /etc/rc2.d
對應(yīng)于運行級別 2).
若何查看系統(tǒng)的默認運行級別?
首先,查看 /etc/inittab
文件是否存在.如果不存在,就執(zhí)行 runlevel
敕令查詢,你一般就已經(jīng)處在該運行級別.
如何轉(zhuǎn)變系統(tǒng)運行級別?
用 init
命令(例如 init 3
)臨時改變運行級別,通過修改或創(chuàng)立 /etc/inittab
文件永久改變其運行級別.
能轉(zhuǎn)變特定運行級別下運行的服務(wù)么?
當然,通過轉(zhuǎn)變對應(yīng)的 /etc/rc?.d
目錄下的符號連接即可.
還有一些其他的什么必要考慮?
當改變系統(tǒng)運行級別時,你應(yīng)該特別當心,確保不影響到系統(tǒng)上正在運行的服務(wù)或者正在使用的用戶.
(題圖:Vincent Desjardins (CC BY 2.0))
via: https://www.networkworld.com/article/3222070/linux/maneuvering-around-run-levels-on-linux.html
作者:Sandra Henry-Stocker 譯者:penghuster 校對:wxy
本文由 LCTT 原創(chuàng)編譯,Linux中國 榮譽推出
本文永遠更新鏈接地址:
《LINUX學習:漫談傳統(tǒng)的 Linux 初始化系統(tǒng)的運行級別》是否對您有啟發(fā),歡迎查看更多與《LINUX學習:漫談傳統(tǒng)的 Linux 初始化系統(tǒng)的運行級別》相關(guān)教程,學精學透。維易PHP學院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/7053.html