如果您在 /usr/lib/systemd/system
目錄中輸入 ls
命令,您將看到各種以 .target
結(jié)尾的文件。啟動(dòng)目標(biāo) (target)是一種將多個(gè)單元聚合在一起以致于將它們同時(shí)啟動(dòng)的方式。例如,對(duì)大多數(shù)類 Unix 操作系統(tǒng)而言有一種“多用戶(multi-user)”狀態(tài),意思是系統(tǒng)已被成功啟動(dòng),后臺(tái)服務(wù)正在運(yùn)行,并且已準(zhǔn)備好讓一個(gè)或多個(gè)用戶登錄并工作——至少在文本模式下。(其他狀態(tài)包括用于進(jìn)行管理工作的單用戶(single-user)狀態(tài),以及用于機(jī)器關(guān)機(jī)的重啟(reboot)狀態(tài)。)
如果您打開 multi-user.target 文件一探究竟,您可能期待看到的是一個(gè)要被啟動(dòng)的單元列表。但您會(huì)發(fā)現(xiàn)這個(gè)文件內(nèi)部幾乎空空如也——其實(shí),一個(gè)服務(wù)會(huì)通過 WantedBy 選項(xiàng)讓自己成為啟動(dòng)目標(biāo)的依賴。因此如果您去打開 avahi-daemon.service, NetworkManager.service 及其他 .service 文件看看,您將在 Install 段看到這一行:
WantedBy=multi-user.target
因此,切換到多用戶啟動(dòng)目標(biāo)會(huì)使能(enable)那些包含上述語句的單元。還有其他一些啟動(dòng)目標(biāo)可用(例如 emergency.target 提供一個(gè)緊急情況使用的 shell,以及 halt.target 用于機(jī)器關(guān)機(jī)),您可以用以下方式輕松地在它們之間切換:
systemctl isolate emergency.target
在許多方面,這些都很像 SysVinit 中的運(yùn)行級(jí) (runlevel),如文本模式的 multi-user.target 類似于第3運(yùn)行級(jí),graphical.target 類似于第5運(yùn)行級(jí),reboot.target 類似于第6運(yùn)行級(jí),諸如此類。
與傳統(tǒng)的腳本相比,單元配置文件也許看起來很陌生,但并不難以理解。
現(xiàn)在您也許陷入了沉思:我們已經(jīng)看了這么多,但仍沒看到如何停止和開啟服務(wù)!這其實(shí)是有原因的。從外部看,Systemd 也許很復(fù)雜,像野獸一般難以駕馭。因此在您開始擺弄它之前,有必要從宏觀的角度看看它是如何工作的。實(shí)際用來管理服務(wù)的命令非常簡單:
systemctl stop cups.service
systemctl start cups.service
(若某個(gè)單元被禁用了,您可以先通過 systemctl enable
加上該單元名的方式將其使能。這種做法會(huì)為該單元?jiǎng)?chuàng)建一個(gè)符號(hào)鏈接,并將其放置在當(dāng)前啟動(dòng)目標(biāo)的 .wants
目錄下,這些 .wants
目錄在/etc/systemd/system
文件夾中。)
還有兩個(gè)有用的命令是 systemctl restart
和 systemctl reload
,后面接單元名。后者用于讓單元重新加載它的配置文件。Systemd 的絕大部分都有良好的文檔,因此您可以查看手冊(cè) (man systemctl
) 了解每條命令的細(xì)節(jié)。
2015職稱計(jì)算機(jī)考試書PowerPoint2007中 .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書籍 | |
2015年全國職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |