日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
漫談傳統(tǒng)的Linux初始化系統(tǒng)的運行級別

了解運行級別是如何配置的,如何改變系統(tǒng)運行級別以及修改對應狀態(tài)下運行的服務。

在 linux 系統(tǒng)中,運行級別run level是指運維的級別,用于描述一種表明什么服務是可用的系統(tǒng)運行狀態(tài)。

運行級別 1 是嚴格限制的,僅僅用于系統(tǒng)維護;該級別下,網(wǎng)絡連接將不可操作,但是管理員可以通過控制臺連接登錄系統(tǒng)。

其他運行級別的系統(tǒng)允許任何人登錄和使用,但是不同級別中可使用的服務不同。本文將探索如何配置運行級別,如何交互式改變系統(tǒng)運行級別以及修改該狀態(tài)下可用的服務。

Linux 系統(tǒng)的默認運行狀態(tài)是一個在系統(tǒng)開機時使用的運行級別(除非有其他的指示),它通常是在 /etc/inittab 文件中進行配置的,該文件內(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)絡文件系統(tǒng))。 在另外一些系統(tǒng),運行級別 2 - 5 基本相同,運行級別 1 是單用戶模式。例如,Debian 系統(tǒng)的所用運行級別如下:

0 = 停機
1 = 單用戶(維護模式)
2 = 多用戶模式
3-5 = 同 2 一樣
6 = 重啟

在 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 (對應于相應的運行級別)。

在以下示例中(Ubuntu 系統(tǒng)),由于這些目錄的配置是相同的,我們將看見上述 4 個級別對應的目錄中的內(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 目錄下用于啟動服務的腳本符號連接。 這些文件的文件名是至關(guān)重要的, 因為它們決定了這些腳本文件的執(zhí)行順序,例如, S20 腳本是在 S50 腳本前面運行的。

$ ls -l
total 4
-rw-r--r-- 1 root root 677 Feb 16  2016 README
lrwxrwxrwx 1 root root  20 Aug 30 14:40 S20kerneloops -> ../init.d/kerneloops
lrwxrwxrwx 1 root root  15 Aug 30 14:40 S20rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root  23 Aug 30 16:10 S20smartmontools -> ../init.d/smartmontools
lrwxrwxrwx 1 root root  27 Aug 30 14:40 S20speech-dispatcher -> ../init.d/speech-dispatcher
lrwxrwxrwx 1 root root  17 Aug 31 14:12 S20sysstat -> ../init.d/sysstat
lrwxrwxrwx 1 root root  15 Aug 30 14:40 S50saned -> ../init.d/saned
lrwxrwxrwx 1 root root  19 Aug 30 14:40 S70dns-clean -> ../init.d/dns-clean
lrwxrwxrwx 1 root root  18 Aug 30 14:40 S70pppd-dns -> ../init.d/pppd-dns
lrwxrwxrwx 1 root root  21 Aug 30 14:40 S99grub-common -> ../init.d/grub-common
lrwxrwxrwx 1 root root  18 Aug 30 14:40 S99ondemand -> ../init.d/ondemand
lrwxrwxrwx 1 root root  18 Aug 30 14:40 S99rc.local -> ../init.d/rc.local

如你所想,目錄 /etc/rc1.d 因運行級別 1 的特殊而不同。它包含的符號鏈接指向非常不同的一套腳本。 同樣也要注意到其中一些腳本以 K 開頭命名,而另一些與其它運行級別腳本一樣以 S 開頭命名。這是因為當系統(tǒng)進入單用戶模式時, 一些服務需要停止。 然而這些 K 開頭的符號鏈接指向了其它級別 S 開頭的符號鏈接的同一文件時, K(kill)表示這個腳本將以指示其停止的參數(shù)執(zhí)行,而不是以啟動的參數(shù)執(zhí)行。

/etc/rc1.d$ ls -l
total 4
lrwxrwxrwx 1 root root  20 Aug 30 14:40 K20kerneloops -> ../init.d/kerneloops
lrwxrwxrwx 1 root root  15 Aug 30 14:40 K20rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root  15 Aug 30 14:40 K20saned -> ../init.d/saned
lrwxrwxrwx 1 root root  23 Aug 30 16:10 K20smartmontools -> ../init.d/smartmontools
lrwxrwxrwx 1 root root  27 Aug 30 14:40 K20speech-dispatcher -> ../init.d/speech-dispatcher
-rw-r--r-- 1 root root 369 Mar 12  2014 README
lrwxrwxrwx 1 root root  19 Aug 30 14:40 S30killprocs -> ../init.d/killprocs
lrwxrwxrwx 1 root root  19 Aug 30 14:40 S70dns-clean -> ../init.d/dns-clean
lrwxrwxrwx 1 root root  18 Aug 30 14:40 S70pppd-dns -> ../init.d/pppd-dns
lrwxrwxrwx 1 root root  16 Aug 30 14:40 S90single -> ../init.d/single

你可以改變系統(tǒng)的默認運行級別,盡管這很少被用到。例如,通過修改前文中提到的 /etc/inittab 文件,你能夠配置 Debian 系統(tǒng)的默認運行級別為 3 (而不是 2),以下是該文件示例:

id:3:initdefault:

一旦你修改完成并重啟系統(tǒng), runlevel 命令將顯示如下:

$ runlevel
N 3

另外一種可選方式,使用 init 3 命令,你也能改變系統(tǒng)運行級別(且無需重啟立即生效), runlevel 命令的輸出為:

$ runlevel
2 3

當然,除非你修改了系統(tǒng)默認級別的 /etc/rc?.d 目錄下的符號鏈接,使得系統(tǒng)默認運行在一個修改的運行級別之下,否則很少需要通過創(chuàng)建或修改 /etc/inittab 文件改變系統(tǒng)的運行級別。

在 Linux 系統(tǒng)中如何使用運行級別?

為了扼要重述在系統(tǒng)中如何使用運行級別,下面有幾個關(guān)于運行級別的快速問答問題:

如何查詢系統(tǒng)當前的運行級別?

使用 runlevel 命令。

如何查看特定運行級別所關(guān)聯(lián)的服務進程?

查看與該運行級別關(guān)聯(lián)的運行級別開始目錄(例如, /etc/rc2.d 對應于運行級別 2)。

如何查看系統(tǒng)的默認運行級別?

首先,查看 /etc/inittab 文件是否存在。如果不存在,就執(zhí)行 runlevel 命令查詢,你一般就已經(jīng)處在該運行級別。

如何改變系統(tǒng)運行級別?

init 命令(例如 init 3)臨時改變運行級別,通過修改或創(chuàng)建 /etc/inittab 文件永久改變其運行級別。

能改變特定運行級別下運行的服務么?

當然,通過改變對應的 /etc/rc?.d 目錄下的符號連接即可。

還有一些其他的什么需要考慮?

當改變系統(tǒng)運行級別時,你應該特別小心,確保不影響到系統(tǒng)上正在運行的服務或者正在使用的用戶。

(題圖:Vincent Desjardins (CC BY 2.0))



標題名稱:漫談傳統(tǒng)的Linux初始化系統(tǒng)的運行級別
文章源于:http://www.dlmjj.cn/article/dppiieg.html