【RHEL7/CentOS7服務控制之systemctl命令】

"Systemd對於Linux來講,就是一個init程序,能夠做爲sysVinitUpstat的替代。框架

RHEL7監控和控制Systemd的主要命令是systemctl,該命令可查看系統狀態管理系統及服務ssh

RHEL7的服務systemctl腳本存放在:/usr/lib/systemd,有系統(system)用戶(user)之分。
.
像一些須要開機不登錄就得運行的程序,就存在系統服務裏,即:/usr/lib/systemd/system目錄下。而關於用戶的存放在/usr/lib/systemd/user目錄下。
.
其中每個服務以.service結尾,通常分爲3部分:[Unit][Service][Install]
.
以下圖(sshd服務):
在這裏插入圖片描述
[Unit]
這部分是對這個服務的說明,主要內容包括Description和After。
Description用於描述服務;After用於描述服務類型。
.
[Service]
這部分是服務的關鍵,是服務的一些具體運行參數的設置。socket

  1. Type=forking 表示此服務是後臺運行的形式。
  2. PIDFile 指定存放PID的文件路徑。
  3. ExecStart 爲服務的具體運行命令。
  4. ExecReload 爲重載命令。
  5. ExecStop 爲中止命令。

.
注意:[Service]部分的啓動、重啓、中止 命令所有要求使用絕對路徑!
.
[Install]
這部分是服務安裝的相關設置,可設置爲多用戶的。
須要注意的是,若是服務沒有Install部分,通常意味着應該經過其它服務自動調用它們。
使用systemd時,可經過正確編寫單元配置文件來解決其依賴關係。
典型的狀況是,服務A要求服務B在A啓動以前運行。在此狀況下,向服務A配置文件中的[Unit]段添加Requires=B和After=B便可.ide


對於玩轉RHEL6的小夥伴來講,servicechkconfig這兩個命令確定不陌生。工具

RHEL7系統中的systemctl是管制服務的主要工具,它整合了service與chkconfig功能於一體。ui

systemd提供更優秀的框架以表示系統服務間的依賴關係。
systemd實現系統初始化時服務的並行啓動,同時達到下降Shell的系統開銷的效果。
systemd的目的是儘量啓動更少的進程,儘量將更多進程並行啓動。rest

systemctl命令的基本格式:systemctl 動做 服務名.servicecode

可以使用 systemctl daemon-reload 從新載入systemd,掃描新的或有變更的單元。進程

系統狀態相關

systemctl reboot 重啓系統
.
systemctl poweroff 退出系統並中止電源
.
systemctlsystemctl list-units 輸出激活單元
.
systemctl list-units --type=service 列出active狀態的服務
.
systemctl list-unit-files 列出全部已安裝的服務
.
systemctl --failed 顯示啓動失敗的服務
.
systemd-cgls 以樹形列出正在運行的進程圖片

服務控制相關

systemctl start 服務名.service 當即啓動服務
.
systemctl stop 服務名.service 當即中止服務
.
systemctl restart 服務名.service 重啓服務
.
systemctl reload 服務名.service 從新載入服務
.
systemctl status 服務名.service 輸出服務運行狀態
.
systemctl is-enabled 服務名.service 檢查服務是否爲開機自啓
.
systemctl enable 服務名.service 啓用服務開機自啓
.
systemctl disable 服務名.service 禁用服務開機自啓
.
systemctl is-active 服務名.service 檢查服務是否正在運行
.
systemctl mask 服務名.service 禁用服務
.
systemctl unmask 服務名.service 激活服務

關於單元擴展名

全部可用的單元文件存放在/usr/lib/systemd/system//etc/systemd/system目錄(後者優先級更高)。
.
一個單元能夠是系統服務(.service)、掛載點(.mount)、sockets(.sockets)。
.
使用systemctl控制單元時,一般須要使用單元文件的全名,包括擴展名(例如sshd.service)。
.
可是呢,有些單元文件能夠在systemctl中使用簡寫方式。若是無擴展名,systemctl默認把擴展名當作.service。例如 sshd 和 sshd.service 是等價的。
.
掛載點會自動轉化爲相應的.mount單元。例如/home等價於home.mount。
設備會自動轉化爲相應的.device單元,因此/dev/sda2等價於dev-sda2.device。



作你沒作過的事情,叫作成長。

作你不肯意作的事情,叫作改變。

作你不敢作的事情,叫作突破。

兄dei,加油!

不要天天看着勵志的句子,過着頹廢的生活。

——抖音@張培豬 "

相關文章
相關標籤/搜索