(1)怎樣知道一個目標需要哪些進程服務?
例如,可能想搞明白目標單元multi-user.target究竟啟用了哪些服務,使用以下命令:
復制代碼代碼如下:
$systemctlshow-p"Wants"multi-user.target
Wants=rc-local.serviceavahi-daemon.servicerpcbind.serviceNetworkManager.serviceacpid.servicedbus.serviceatd.servicecrond.serviceauditd.servicentpd.serviceudisks.servicebluetooth.serviceorg.cups.cupsd.servicewpa_supplicant.servicegetty.targetmodem-manager.serviceportreserve.serviceabrtd.serviceyum-updatesd.serviceupowerd.servicetest-first.servicepcscd.servicersyslog.servicehaldaemon.serviceremote-fs.targetplymouth-quit.servicesystemd-update-utmp-runlevel.servicesendmail.servicelvm2-monitor.servicecpuspeed.serviceudev-post.servicemdmonitor.serviceiscsid.servicelivesys.servicelivesys-late.serviceirqbalance.serviceiscsi.service
除了Wants,還可以查看各種形式的依賴和被依賴信息:WantedBy、Requires、RequiredBy、Conflicts、ConflictedBy、Before、After。
(2)target與運行級別
在RHEL7之前的版本,使用運行級別代表特定的操作模式。運行級別被定義為七個級別,用數字0到6表示,每個級別可以啟動特定的一些服務。RHEL7使用target替換運行基本。
systemd target使用target單元文件描述,target單位文件擴展名是.target,target單元文件的唯一目標是將其他systemd單元文件通過一連串的依賴關系組織在一起。舉個例子,graphical.target單元,用於啟動一個圖形會話,systemd會啟動像GNOME顯示管理(gdm.service)、帳號服務(axxounts-daemon)這樣的服務,並且會激活multi-user.target單元。相似的multi-user.target單元,會啟動必不可少的NetworkManager.service、dbus.service服務,並激活basic.target單元。
RHEL7預定義了一些target和之前的運行級別或多或少有些不同。為了兼容,systemd也提供一些target映射為SysV init的運行級別,具體的對應信息如下:
0runlevel0.target,poweroff.target關閉系統。
1runlevel1.target,rescue.target進入救援模式。
2runlevel2.target,multi-user.target進入非圖形界面的多用戶方式。
3runlevel3.target,multi-user.target進入非圖形界面的多用戶方式。
4runlevel4.target,multi-user.target進入非圖形界面的多用戶方式。
5runlevel5.target,graphical.target進入圖形界面的多用戶方式。
6runlevel6.target,reboot.target重啟系統。
(3)target管理
1)使用如下命令查看目前可用的target:
復制代碼代碼如下:systemctl list-units --type target
改變當前的運行基本使用如下命令:
復制代碼代碼如下:systemctl isolate name.target
2)修改默認的運行級別
使用systemctl get-default命令得到默認的運行級別:
復制代碼代碼如下:
[root@localhost~]#systemctlget-default
multi-user.target
使用systemctl set-default name.target修改默認的運行基本
復制代碼代碼如下:
[root@localhost~]#systemctlset-defaultgraphical.target
rm'/etc/systemd/system/default.target'
ln-s'/usr/lib/systemd/system/graphical.target''/etc/systemd/system/default.target'
3)救援模式和緊急模式
使用systemctl rescue進入救援模式,如果連救援模式都進入不了,可以進入緊急模式:
復制代碼代碼如下: systtmctl emergency
緊急模式進入做小的系統環境,以便於修復系統。緊急模式根目錄以只讀方式掛載,不激活網絡,只啟動很少的服務,進入緊急模式需要root密碼。