(翻譯)如何使用systemctl命令來(lái)管理systemd的服務(wù)(Service)和資源(單元)
介紹
Systemd 是一個(gè)系統(tǒng)初始化和系統(tǒng)管理工具,作為linux機(jī)器的新標(biāo)準(zhǔn)正被廣泛的接受。雖然 systemd 相比于正被其替代的傳統(tǒng)的 SysV 初始系統(tǒng)是否有改進(jìn)仍有一些值得考慮的細(xì)節(jié),但在主要的版本中準(zhǔn)備采納或已經(jīng)采納它了。
由于其被廣泛采納,熟悉 systemd 是物有所值的,它會(huì)使得管理服務(wù)非常簡(jiǎn)單。學(xué)習(xí)和掌握組成systemd的工具和守護(hù)進(jìn)程,將會(huì)有助你領(lǐng)會(huì)其提供的強(qiáng)力、靈活等能力,至少可以幫助你以最少的麻煩處理工作。
在本指南中,我們將討論systemctl命令,該命令是來(lái)控制初始化系統(tǒng)的核心管理工具。我們將包含如何管理服務(wù)、檢查狀態(tài)、改變系統(tǒng)狀態(tài)和使用配置文件。
請(qǐng)注意雖然systemd已經(jīng)成為大多數(shù)linux版本中的初始系統(tǒng),它并沒(méi)有在所有的發(fā)行版中掛載。如果你在跟隨本教程,在你的終端中輸出 bash: systemctl is not installed 那表示你的機(jī)器中安裝了不同的初始化系統(tǒng)。
服務(wù)管理
一個(gè)初始化系統(tǒng)的基本目的是在啟動(dòng)某些必須在Linux核心啟動(dòng)后啟動(dòng)的模塊(傳統(tǒng)上稱其為用戶模塊)。該初始化系統(tǒng)也被用來(lái)在系統(tǒng)正在運(yùn)行時(shí)的任何時(shí)間點(diǎn)來(lái)管理服務(wù)和用于服務(wù)的守護(hù)進(jìn)程。留心這一點(diǎn),我們將開始一些簡(jiǎn)單的服務(wù)管理操作
在Systemd中,大部分操作的對(duì)象是單元(units),一些Systemd知道如何去管理的資源。單元按照其代表的資源類型進(jìn)行歸類,由作為單元文件被熟知的文件定義。每個(gè)單元的類型可以通過(guò)文件的后綴名推斷出來(lái)。
對(duì)于服務(wù)管理任務(wù),目標(biāo)單元將會(huì)是服務(wù)單元集,它含有.service后綴名的單元文件。然而,對(duì)于大多數(shù)服務(wù)管理命令,可以省略.service后綴,因?yàn)?strong>systemd在你使用服務(wù)管理命令的時(shí)候巧妙的知道你想操作一個(gè)服務(wù)文件。
啟動(dòng)和暫停服務(wù)
要啟動(dòng)一個(gè)Systemd服務(wù),使用start命令,來(lái)執(zhí)行服務(wù)的單元文件中的執(zhí)行集。如果當(dāng)前用戶非根用戶,需要使用sudo執(zhí)行,因?yàn)橐獔?zhí)行的命令將對(duì)整個(gè)系統(tǒng)產(chǎn)生影響:
sudo systemctl start application.service
就像我們上面提到的,systemd知道去尋找.service文件來(lái)進(jìn)行服務(wù)管理命令,所以該命令可以簡(jiǎn)單的這樣輸入:
sudo sytemctl start application
雖然你可以使用上述格式來(lái)完成一般的操作,但為了清晰起見(jiàn),我們將使用.service后綴來(lái)提醒命令明確的執(zhí)行我們要操作的目標(biāo)文件。
要停止當(dāng)前運(yùn)行的服務(wù),可以用stop命令來(lái)替換:
sudo systemctl stop application.service
重啟和重新加載
要重啟當(dāng)前運(yùn)行的服務(wù),可以用restart命令來(lái)替換:
sudo systemctl restart application.service
如果討論中的應(yīng)用可以重載他的配置文件(不用重啟),你可以調(diào)用reload命令來(lái)初始化進(jìn)程:
sudo systemctl reload application.service
如果你不能確定當(dāng)前服務(wù)是否重載其配置的功能,你可以調(diào)用reload-or-restart命令 這將會(huì)在可以重載的情況下重載配置,否則,會(huì)重啟服務(wù)使新配置被使用:
sudo systemctl reload-orrestart application.service
打開和關(guān)閉服務(wù)的開機(jī)啟動(dòng)
上述命令在當(dāng)前會(huì)話中啟動(dòng)或停止命令是很有用。但是告知系統(tǒng)開機(jī)啟動(dòng)程序,你必須執(zhí)行開機(jī)啟動(dòng)。
要執(zhí)行開啟,使用enable命令
sudo systemctl enable application.service
這將創(chuàng)建一個(gè)從系統(tǒng)的拷貝的服務(wù)文件(通常在/lib/systemd/system 或 /etc/systemd/system)指向用來(lái)給systemd程序?qū)ふ易詣?dòng)啟動(dòng)文件的本地硬盤(一般是/etc/systemd/system/some_target.target.wants 我們將在本教程后續(xù)中介紹)符號(hào)鏈接
關(guān)閉該服務(wù)的開機(jī)自啟,你可以鍵入:
sudo systemctl disable application.service
這將會(huì)刪除說(shuō)明該程序是開機(jī)啟動(dòng)的符號(hào)鏈接。
記住打開開機(jī)自啟并不會(huì)在當(dāng)前會(huì)話中啟動(dòng)服務(wù),如果你既希望啟動(dòng)服務(wù)也想打開開機(jī)自啟,你將必須start和enable命令調(diào)用。
檢查服務(wù)的狀態(tài) #####:
要檢查系統(tǒng)中服務(wù)的狀態(tài),可以使用status命令:
systemctl status application.service
這將提供服務(wù)的狀態(tài),cgroup的結(jié)構(gòu),和少量的最開始的日志行。
舉個(gè)例子,當(dāng)你檢查Ngix服務(wù)的狀態(tài)時(shí),你將看到這樣的輸入結(jié)果:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2015-01-27 19:41:23 EST; 22h ago
Main PID: 495 (nginx)
CGroup: /system.slice/nginx.service
├─495 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; error_log stderr;
└─496 nginx: worker process
Jan 27 19:41:23 desktop systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 27 19:41:23 desktop systemd[1]: Started A high performance web server and a reverse proxy server.
這為你提供當(dāng)前服務(wù)很好的狀態(tài)查看,通知你任何問(wèn)題還有某個(gè)需要執(zhí)行的動(dòng)作。
也有別的檢查特定狀態(tài)的方法,例如,檢查一個(gè)單元是否正在運(yùn)行,可以使用** is-active ** 命令:
systemctl is-active application.service
這將返回當(dāng)前單元的狀態(tài),通常是active 或 ** inactive**,這段代碼執(zhí)行的結(jié)果,如果是運(yùn)行狀態(tài)將會(huì)是“0”,可以在程序上更容易使用。(一般linux程序成功后會(huì)返回0)
查看該單元是否是開機(jī)自啟,可以使用is-enalbed命令
systemctl is-enabled application.service
這將輸出該服務(wù)是否開機(jī)自啟,同樣的返回結(jié)果為“0”或"1"根據(jù)其自身的狀態(tài)。
另外一個(gè)檢查是查看該單元是否是在一個(gè)錯(cuò)誤的狀態(tài),這指示了討論中的單元在啟動(dòng)時(shí)是否有問(wèn)題:
systemctl is-failed application.service
如果正常運(yùn)行返回active,如果有錯(cuò)誤返回failed。如果該單元被顯式的停止,將會(huì)返回unknown 或 inactive。返回狀態(tài)碼”0“表示有失敗發(fā)生而返回狀態(tài)碼“1”表示別的狀態(tài)。
系統(tǒng)狀態(tài)查看
到現(xiàn)在介紹的命令對(duì)于控制單個(gè)服務(wù)很有用,但是對(duì)于探查系統(tǒng)當(dāng)前狀態(tài)用處不大。有很多的systemctl命令來(lái)提供該信息。
列舉當(dāng)前單元
要查看當(dāng)前systemd知道的所有的活動(dòng)的單元列表,我們可以使用list-units命令:
systemctl list-units
這將會(huì)展示系統(tǒng)中systemd激活的所有的單元列表。輸出會(huì)類似于這樣:
UNIT LOAD ACTIVE SUB DESCRIPTION
atd.service loaded active running ATD daemon
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
dbus.service loaded active running D-Bus System Message Bus
dcron.service loaded active running Periodic Command Scheduler
dkms.service loaded active exited Dynamic Kernel Modules System
getty@tty1.service loaded active running Getty on tty1
. . .
輸出中包含如下幾列:
- UNIT: systemd的單元名稱
- LOAD: 單元的配置是否被systemd解析,加載過(guò)的單元的配置保存在內(nèi)存中
- ACTIVE: 一個(gè)簡(jiǎn)要關(guān)于單元是否激活的狀態(tài)信息,通常是相當(dāng)基本的告知該單元是否成功的啟動(dòng)
- SUB:這是低等級(jí)狀態(tài)標(biāo)識(shí)了該單元的更多的細(xì)節(jié)信息。這通常會(huì)根據(jù)單元類型,狀態(tài)和單元運(yùn)行的真是真實(shí)方法變化。
- DESCIPTION: 一個(gè)簡(jiǎn)短的單元功能的文字描述
因?yàn)?strong>list-units命令默認(rèn)只展示激活的單元,上面所有的條目中的LOAD列都顯示“l(fā)oaded”和ACTIVE列都顯示“active”,這些信息就是不帶額外參數(shù)systemctl的默認(rèn)展示行為,所以如果你不帶參數(shù)的調(diào)用systemctl命令,你將看到同樣的輸出結(jié)果:
systemctl
我們可以通過(guò)添加額外的標(biāo)志參數(shù)告知systemctl輸出不同的信息。列如,查看systemd中所有加載的(或試圖加載),不論是否被激活的單元,你可以使用-all參數(shù),像這樣:
systemctl list-units --all
這將會(huì)輸出systemd加載的或試圖去加載的單元,不考慮他們當(dāng)前在系統(tǒng)中的狀態(tài)。其中,一些單元在運(yùn)行后變?yōu)榉羌せ顮顟B(tài),一些systemd試圖去加載的但是在硬盤中找不到的單元。
你可以使用別的參數(shù)來(lái)過(guò)濾這些結(jié)果。例如,我們可以使用--state參數(shù)來(lái)標(biāo)識(shí)LOAD、ACTIVE,或SUB狀態(tài)中我們想要查看的。同時(shí)你需要保留--all參數(shù)來(lái)告知systemctl允許非激活狀態(tài)的單元展示。
systemctl list-units --all --state=inactive
另外一個(gè)常用的過(guò)濾參數(shù)--type=.我們可以告知systenctl來(lái)展示我們感興趣的類型的單元。例如,只查看激活的服務(wù)的單元,我們可以使用
systemctl list-units --type=service
列舉所有單元文件
list-units命令只展示哪些systemd試圖解析和加載進(jìn)內(nèi)存的單元。因?yàn)?strong>systemd只會(huì)讀取它認(rèn)為他將需要的單元,這將不一定包含系統(tǒng)中所有可用的單元。要查看在systemd目錄中每個(gè)可用的單元文件,包含哪些systemd沒(méi)有試圖加載的。你可以使用list-unit-files命令替代:
systemctl list-unit-files
單元是systemd知道的資源的集合。因?yàn)?strong>systemd不一定需要讀取所有的定義信息,它只展示文件本身的基本信息。輸出結(jié)果有兩列: 單元文件名和狀態(tài)
UNIT FILE STATE
proc-sys-fs-binfmt_misc.automount static
dev-hugepages.mount static
dev-mqueue.mount static
proc-fs-nfsd.mount static
proc-sys-fs-binfmt_misc.mount static
sys-fs-fuse-connections.mount static
sys-kernel-config.mount static
sys-kernel-debug.mount static
tmp.mount static
var-lib-nfs-rpc_pipefs.mount static
org.cups.cupsd.path enabled
. . .
狀態(tài)列通常為“enabled”,"disabled",“static”,“masked”。在該語(yǔ)境下,靜態(tài)表示該單元文件沒(méi)有包含那些用來(lái)打開單元開機(jī)自啟功能的安裝部分代碼,因此這些單元不能夠開機(jī)自啟。通常,這意味著扮演者一次性執(zhí)行動(dòng)作或僅被用來(lái)其他單元的依賴不能夠單獨(dú)運(yùn)行的。
我們將在涉及到時(shí)展開“masked”的解釋。
單元管理
目前為止,我們已經(jīng)實(shí)踐了服務(wù)相關(guān)和展示systemd知道的單元和單元文件的信息。我們可以使用一些其他的命令來(lái)查找找出更多的特定信息。
展示一個(gè)單元文件
要展示一個(gè)被systemd加載進(jìn)其系統(tǒng)的單元文件,你可以使用cat命令。例如,查看atd計(jì)劃守護(hù)進(jìn)程,我們可以鍵入:
systemctl cat atd.service
[Unit]
Description=ATD daemon
[Service]
Type=forking
ExecStart=/usr/bin/atd
[Install]
WantedBy=multi-user.target
輸出的結(jié)果是被當(dāng)前運(yùn)行的systemd進(jìn)程所知道的單元文件內(nèi)容,如果你最近修改了單元文件內(nèi)容或正在重寫一個(gè)單元文件片段的內(nèi)容,知道這點(diǎn)很重要。(我們?cè)诤罄m(xù)會(huì)涉及到)
展示依賴
查看一個(gè)單元的依賴樹,你可以使用list-dependencied命令:
systemctl list-dependencies sshd.service
這將展示一個(gè)分層的那些為了開啟討論中單元時(shí)必須處理的依賴關(guān)系圖。這些依賴,在當(dāng)前語(yǔ)境下,包括那些直接被程序需要以及啟動(dòng)這些程序的上一級(jí)的依賴程序。
sshd.service
├─system.slice
└─basic.target
├─microcode.service
├─rhel-autorelabel-mark.service
├─rhel-autorelabel.service
├─rhel-configure.service
├─rhel-dmesg.service
├─rhel-loadmodules.service
├─paths.target
├─slices.target
. . .
遞歸的依賴只展示到.target單元,這些單元用來(lái)指示系統(tǒng)的狀態(tài)。若要遞歸展示所有的依賴,加入--all參數(shù)。
展示反轉(zhuǎn)的依賴(給定的單元被別的單元依賴),你可以添加--reverse參數(shù),其他常用的參數(shù)--before和--after,可以用來(lái)分別展示在特定單元之前或之后運(yùn)行的單元。
檢查單元的屬性
若要查看低一級(jí)的單元屬性,你可以使用show命令。這將用key==value(鍵值對(duì))形式列舉出該單元的屬性:
systemctl show sshd.service
Id=sshd.service
Names=sshd.service
Requires=basic.target
Wants=system.slice
WantedBy=multi-user.target
Conflicts=shutdown.target
Before=shutdown.target multi-user.target
After=syslog.target network.target auditd.service systemd-journald.socket basic.target system.slice
Description=OpenSSH server daemon
. . .
如果你想展示某個(gè)特定的屬性,你可以使用-p參數(shù)并附帶屬性名稱。例如,查看sshd.service單元的conflicts屬性,你可以鍵入:
systemctl show sshd.service -p Conflicts
Conflicts=shutdown.target
標(biāo)記和不標(biāo)記單元
我們已經(jīng)在服務(wù)管理部分知道如何去停止和關(guān)閉開機(jī)啟動(dòng)服務(wù),但是systemd也有把單元標(biāo)記為不論自動(dòng)或手動(dòng)都不可啟動(dòng)的能力,這是通過(guò)將該單元鏈接到/dev/null實(shí)現(xiàn)的。這被稱為標(biāo)記單元,可以用個(gè)mask命令來(lái)實(shí)現(xiàn):
sudo systemctl mask nginx.service
這將阻止nginx服務(wù)被自動(dòng)或手動(dòng)啟動(dòng),只要在其被標(biāo)記的狀態(tài)下。
如果你查看list-unit-files,你將會(huì)看到該服務(wù)已經(jīng)被標(biāo)記為“masked”狀態(tài)展示:
systemctl list-unit-files
. . .
kmod-static-nodes.service static
ldconfig.service static
mandb.service static
messagebus.service static
nginx.service masked
quotaon.service static
rc-local.service static
rdisc.service disabled
rescue.service static
. . .
如果你試圖啟動(dòng)該服務(wù),你將看到如下信息:
sudo systemctl start nginx.service
Failed to start nginx.service: Unit nginx.service is masked.
若要解鎖一個(gè)單元的標(biāo)記機(jī),讓其可以被使用,簡(jiǎn)單的使用unmask即可:
sudo systemctl unmask nginx.service
這將是該單元返回到其被標(biāo)記前的狀態(tài),被允許啟動(dòng)或開機(jī)自啟。
編輯單元文件內(nèi)容
關(guān)于單元文件的格式的討論不在本教程范圍內(nèi),如果你需要調(diào)整單元文件的內(nèi)容可以使用systemctl提供了內(nèi)置的修改或編輯單元文件的命令來(lái)完成。
edit命令默認(rèn)會(huì)打開當(dāng)前的單元文件片段:
sudo systemctl edit nginx.service
這將打開一個(gè)空白的文件,該文件可以用來(lái)覆蓋或添加單元中定義的指令。同時(shí)在/etc/systemd/system路徑下,一個(gè)文件夾將會(huì)被創(chuàng)建,文件名是單元文件名附加。d.例如,對(duì)于nginx.service來(lái)說(shuō),一個(gè)名為nginx.service.d的文件夾將會(huì)被創(chuàng)建。
在該文件夾內(nèi),名為override.conf的片段文件將會(huì)被創(chuàng)建。當(dāng)單元被加載過(guò),systemd將會(huì)在內(nèi)存中將該重寫片段和初始的單元文件合并起來(lái)。該片段中的指令的優(yōu)先級(jí)高于初始單元文件中相應(yīng)的指令。
如果你想要編輯完成的單元文件而不是單元文件片段,你可以輸入--full參數(shù):
sudo systemctl edit --full nginx.service
這將會(huì)將當(dāng)前的單元文件加載到編輯器,在那里可以被修改。當(dāng)編輯器退出時(shí),修改后的文件將會(huì)被存儲(chǔ)到/etc/systemd/system,該文件將會(huì)被以比系統(tǒng)的單元定義(通常在**/lib/systemd/system)高的優(yōu)先級(jí)被使用。
如要?jiǎng)h除任意的你創(chuàng)建的附加的或者單元的.d配置文件夾或者在/etc/systemd/system路徑下的修改的文件。例如,刪除片段,我們可以鍵入:
sudo rm -r /etc/systemd/system/nginx.service.d
若要?jiǎng)h除一個(gè)完整修改的單元文件,你將鍵入:
sudo rm /etc/systemd/system/nginx.service
在刪除這些文件或文件夾后,你需要重載systemd進(jìn)程,這樣它就不會(huì)再引用這些文件,讓它回溯使用原來(lái)系統(tǒng)給定文件。你可以通過(guò)鍵入如下信息來(lái)完成:
sudo systemctl daemon-reload
通過(guò)目標(biāo)(Targets)調(diào)整系統(tǒng)狀態(tài)(運(yùn)行等級(jí))
目標(biāo)是一些特殊的單元文件,可以來(lái)描述系統(tǒng)狀態(tài)或同步點(diǎn)。像其他的單元,定義目標(biāo)的文件也可以通過(guò)后綴名被認(rèn)出,對(duì)于目標(biāo)文件來(lái)說(shuō)是.target。目標(biāo)本身不做很多功能,代之的是被用來(lái)整合其他的單元。
這點(diǎn)可以用來(lái)使系統(tǒng)變成特定的狀態(tài),跟別的初始化系統(tǒng)中使用運(yùn)行級(jí)別(runlevel)很相似。它們被用來(lái)當(dāng)作某個(gè)特定功能可用時(shí)的索引,可以讓你直接指明想要的狀態(tài)而不是通過(guò)一些需要的單獨(dú)的單元來(lái)完成狀態(tài)修改。
例如,有個(gè)swap.target文件是用來(lái)標(biāo)識(shí)交換(swap)功能可用的。那些是該進(jìn)程的組成部分的需要目標(biāo)文件同步加載單元,在其配置中以WantedBy=或RequiredBy=那個(gè)swap.target標(biāo)識(shí)。而那些需要swap文件可用的單元文件在配置中可以使用Wants=,××Requires=,和After=××指令來(lái)說(shuō)明他們之間的關(guān)系。
獲取和設(shè)置默認(rèn)的目標(biāo)
systemd進(jìn)程當(dāng)啟動(dòng)系統(tǒng)時(shí)會(huì)使用默認(rèn)的目標(biāo)。完成那個(gè)目標(biāo)文件的級(jí)聯(lián)的依賴將會(huì)是系統(tǒng)進(jìn)入所需的狀態(tài)。若要查看系統(tǒng)中默認(rèn)的目標(biāo),鍵入:
systemctl get-dafault
multi-user.target
如果你想要設(shè)置一個(gè)不同的默認(rèn)目標(biāo),你可以使用set-default。例如,你如果有個(gè)圖形桌面安裝目標(biāo),你希望系統(tǒng)將其作為默認(rèn)的目標(biāo)加載,你可以相應(yīng)的改變系統(tǒng)默認(rèn)的目標(biāo):
sydo systemctl set-default graphical.target
列舉可用的目標(biāo)
你可以查看在系統(tǒng)中可用的目標(biāo)列表,鍵入:
systemctl list-unit-files --type=target
不像運(yùn)行級(jí)別,目標(biāo)一次可以啟動(dòng)多個(gè)。一個(gè)激活的目標(biāo)示意systemd重新試圖啟動(dòng)所有跟該目標(biāo)相關(guān)的單元并且沒(méi)有試圖將這些單元停止。要查看所有的活動(dòng)目標(biāo),鍵入:
systemctl list-units --type=target
隔離目標(biāo)
啟動(dòng)一個(gè)目標(biāo)中涉及的所有的單元,并且停止所有不再依賴樹上的單元是可以的。想達(dá)到該目的的命令被稱為,isolate。這類似去其他初始化系統(tǒng)中的改變運(yùn)行級(jí)別。
例如,你正在通過(guò)graphical.target激活來(lái)操作一個(gè)圖形化系統(tǒng),你可以使用隔離multi-user.target來(lái)關(guān)閉圖形系統(tǒng)讓系統(tǒng)進(jìn)入多用戶命令行狀態(tài)。由于graphical.target依賴于multi-user.target但不包括其他的依賴,所以所有的圖形單元會(huì)被關(guān)閉。
在你要使用隔離功能隔離某個(gè)目標(biāo)前,你或許希望查看一下你要隔離的目標(biāo)中所有的依賴來(lái)保證重要的依賴不被停止:
systemctl list-dependencies multi-user.target
當(dāng)你認(rèn)為只有這些單元被激活可以滿足需要,輸入:
sudo systemctl isolate multi-user.target
使用重要事件的快捷方式
有一些被定義用來(lái)服務(wù)與重要事件的目標(biāo)如關(guān)機(jī)或重啟。 然而,systemd也有一些添加了一些額外功能的快捷方式。
例如,讓系統(tǒng)計(jì)入安全模式(single-user),你可以使用rescue命令代替isolate rescue.target
sudo systemctl rescue
這將產(chǎn)生額外的功能,提醒關(guān)于事件的用戶日志。
若想掛起系統(tǒng),可以使用halt命令:
sudo systemctl halt
若要執(zhí)行徹底的關(guān)機(jī),使用poweroff命令:
sudo systemctl poweroff
重啟是reboot命令:
sudo systemctl reboot
這些都會(huì)給提示普通用戶不能使用該功能,這些提示是簡(jiǎn)單的運(yùn)行和隔離目標(biāo)不會(huì)給出的。注意大多數(shù)機(jī)器會(huì)將這些快捷方式轉(zhuǎn)變成更加方便的使用方式。
例如,重啟系統(tǒng),可以鍵入:
sudo reboot
總結(jié)
到現(xiàn)在位置,你已經(jīng)熟悉了一些systemctl的基本能力,用來(lái)允許你控制和使用systemd實(shí)例。該systemctl工具將會(huì)是你主要的服務(wù)控制和系統(tǒng)狀態(tài)管理工具。
然而systemctl操作主要是來(lái)操作systemd核心功能,還有別的systemd模塊系統(tǒng)被別的工具來(lái)控制。 其它能力,像日志管理和用戶對(duì)話被單獨(dú)的守護(hù)進(jìn)程和管理工具控制(**journald/journalctl ** 和 logind/loginctl). 花點(diǎn)時(shí)間來(lái)熟悉這些工具和守護(hù)進(jìn)程,將會(huì)是管理系統(tǒng)變得很簡(jiǎn)單。