萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> 詳解在Linux系統中如何管理systemd服務

詳解在Linux系統中如何管理systemd服務

   (1) 什麼是單元

  在RHEL7之前,服務管理是分布式的被SysV init或UpStart通過/etc/rc.d/init.d下的腳本管理。這些腳本是經典的Bash腳本,允許管理員控制服務的狀態。在RHEL7中,這些腳本被服務單元文件替換。

  在systemd中,服務、掛載等資源統一被稱為單元,所以systemd中有許多單元類型,服務單元文件的擴展名是.service,同腳本的功能相似。例如有查看、啟動、停止、重啟、啟用或者禁止服務的參數。

  systemd單元文件放置位置:

  /usr/lib/systemd/system/systemd默認單元文件安裝目錄

  /run/systemd/systemsystemdsystemd單元運行時創建,這個目錄優先於按照目錄

  /etc/systemd/system系統管理員創建和管理的單元目錄,優先級最高。

  (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

  檢查服務運作狀態

  代碼如下:

  systemctl status name.service

  或者

  代碼如下:

  systemctl is-active name.service

  展示所有服務狀態詳細信息

  復制代碼

  代碼如下:

  systemctl list-units--type service --all

  允許服務開機啟動

  代碼如下:

  systemctl enable name.service

  禁止服務開機啟動

  代碼如下:

  systemclt disable name.service

  檢查服務開機啟動狀態

  代碼如下:

  systemctl status name.service

  或者

  代碼如下:

  systemctl

  is-enabled name.service

  列出所有服務並且檢查是否開機啟動

  代碼如下:

  systemctl list-unit-files --type service

  (3)服務詳細信息查看

  使用如下命令列出服務:

  代碼如下:

  systemctl list-units --type service

  默認只列出處於激活狀態的服務,如果希望看到所有的服務,使用--all或-a參數:

  代碼如下:

  systemctl list-units--type service --all

  有時候希望看到所以可以設置開機啟動的服務,使用如下命令:

  代碼如下:

  systemctl list-unit-files --type service

  查看服務詳細信息,使用如下命令:

  代碼如下:

  systemctl status name.service

  服務信息關鍵詞解釋

  Loaded服務已經被加載,顯示單元文件絕對路徑,標志單元文件可用。

  Active服務已經被運行,並且有啟動時間信息。

  Main PID與進程名字一致的PID,主進程PID。

  Status服務的附件信息。

  Process相關進程的附件信息。

  CGroup進程的CGroup信息。

copyright © 萬盛學電腦網 all rights reserved