(1) 什么是單元
在RHEL7之前,服務管理是分布式的被SysV init或UpStart通過/etc/rc.d/init.d下的腳本管理。這些腳本是經(jīng)典的Bash腳本,允許管理員控制服務的狀態(tài)。在RHEL7中,這些腳本被服務單元文件替換。
在systemd中,服務、掛載等資源統(tǒng)一被稱為單元,所以systemd中有許多單元類型,服務單元文件的擴展名是.service,同腳本的功能相似。例如有查看、啟動、停止、重啟、啟用或者禁止服務的參數(shù)。
systemd單元文件放置位置:
/usr/lib/systemd/system/systemd默認單元文件安裝目錄
/run/systemd/systemsystemdsystemd單元運行時創(chuàng)建,這個目錄優(yōu)先于按照目錄
/etc/systemd/system系統(tǒng)管理員創(chuàng)建和管理的單元目錄,優(yōu)先級最高。
(2)systemd的服務管理
使用systemcl命令可以控制服務,service命令和chkconfig命令依然可以使用,但是主要是出于兼容的原因,應該盡量避免使用。
使用systemctl命令的時候,服務名字的擴展名可以寫全,例如:
systemctl stop bluuetooth.service
也可以忽略,例如:
systemctl stop bluetooth
systemctl常用命令:
啟動服務
systemctl start name.service
關閉服務
systemctl stop name.service
重啟服務
systemctl restar tname.service
僅當服務運行的時候,重啟服務
systemctl try-restart name.service
重新加載服務配置文件
systemctl relaod name.service
檢查服務運作狀態(tài)
systemctl status name.service
或者
systemctl is-active\ name.service
展示所有服務狀態(tài)詳細信息
systemctl list-units--type service --all
允許服務開機啟動
systemctl enable name.service
禁止服務開機啟動
systemclt disable name.service
檢查服務開機啟動狀態(tài)
systemctl status name.service
或者
systemctl\
is-enabled name.service
列出所有服務并且檢查是否開機啟動
systemctl list-unit-files --type service
(3)服務詳細信息查看
使用如下命令列出服務:
systemctl list-units --type service
默認只列出處于激活狀態(tài)的服務,如果希望看到所有的服務,使用--all或-a參數(shù):
systemctl list-units--type service --all
有時候希望看到所以可以設置開機啟動的服務,使用如下命令:
systemctl list-unit-files --type service
查看服務詳細信息,使用如下命令:
systemctl status name.service
服務信息關鍵詞解釋
Loaded服務已經(jīng)被加載,顯示單元文件絕對路徑,標志單元文件可用。
Active服務已經(jīng)被運行,并且有啟動時間信息。
Main PID與進程名字一致的PID,主進程PID。
Status服務的附件信息。
Process相關進程的附件信息。
CGroup進程的CGroup信息。