首頁 >運維 >linux運維 >如何使用Linux中的SystemD管理系統服務?

如何使用Linux中的SystemD管理系統服務?

James Robert Taylor
James Robert Taylor原創
2025-03-11 17:34:03761瀏覽

使用Linux中的SystemD管理系統服務

SystemD是大多數現代Linux發行版使用的初始系統。它管理系統服務的啟動,停止和整體生命週期。與Sysvinit這樣的較舊的初始系統不同,SystemD提供了一種更複雜,更健壯的方法,並利用依賴關係管理和並行服務啟動等功能。使用SystemD管理服務涉及使用其命令行工具,主要是 SystemCtl 。了解SystemD單元(描述服務,目標和其他系統組件的文件)的結構對於有效的管理至關重要。這些單元通常位於/etc/systemd/system/和其他相關目錄中。這些單元本身通常以簡單的配置語言編寫,使其相對易於理解和修改。最後,SystemD提供了一種強大的日誌記錄機制,使故障排除比舊的Init Systems更簡單。

通用系統命令用於啟動,停止和啟用服務

與Systemd交互的主要命令是 systemd> systemsctl 。以下是一些用於管理服務的常見命令:

  • 開始服務: systemctl start< service_name> 。例如,要啟動SSH服務,您將使用 SytemCtl start SSH 。如果服務尚未運行,則此命令將啟動該服務。
  • 停止服務: systemctl stop< service_name> 。此命令優雅地停止了指定的服務。
  • 重新啟動服務: systemctl restart< service_name> 。此命令停止,然後開始服務。對於應用配置更改或從次要問題中恢復很有用。
  • 啟用服務: systemctl enable< service_name> 。此命令確保服務在啟動時自動啟動。 SystemD創建符號鏈接以將服務單元放置在適當的Runlevel目錄中。
  • 禁用服務: systemctl disable< service_name> 。此命令刪除了符號鏈接,以防止服務在啟動時自動啟動。
  • 檢查服務狀態: systemctl status< service_name> 。此命令顯示服務的當前狀態,包括其PID(過程ID),活動狀態和任何最近的日誌。它提供了有關服務健康的詳細信息。
  • 列出所有活動服務: systemctl list-units -type =服務。此命令列出了當前運行的所有服務。您可以添加 - state =運行僅過濾以進行運行服務。

故障排除Systemd服務故障並查看其日誌

當SystemD服務失敗時,幾種工具會幫助故障排除:

            這個命令至關重要。它提供有關服務狀態的信息,包括如果啟動時間或運行時發生任何錯誤消息。請密切注意“失敗”或“無效(死)”狀態和隨後的錯誤消息。 <li> </li> <li> <p> <prong> journalctl:</prong></p> </li> journal> journal> journalctl 命令是查看SystemD日誌的主要工具。它允許您根據服務名稱,時間和其他條件過濾日誌。例如:
            • journalctl -u&lt; service_name&gt; :專門顯示針對指定服務的日誌。
            • journal> journalctl -u&lt&lt&lt&service_name&gt; -xe :顯示服務的最新錯誤消息。
            • journalctl -u&lt; service_name&gt; -f :實時遵循日誌輸出。有用在故障排除期間觀察服務的行為。
          • 檢查服務配置文件:查看服務單元文件(通常位於/etc/etcect/systemd/systemd/systemd/system/system/中)自定義SystemD服務涉及創建描述服務的單元文件。這些文件通常具有 .service 擴展名。這是服務文件的一個基本示例:
             <code class="“" ini> [unit] description =我的自定義服務後= network.target [service] type = simple user = myuser = mygroup execstart =/path execstart =/path/path/to/my/my/script.sher.sher.sher.shsect.shsect.shertart = lofker WantedBy=multi-user.target</code>
            • [Unit] section: Contains metadata about the service, including its description and dependencies.
            • [Service] section: Defines how the service is run, including the command to execute (ExecStart), the user and將其運行為並重新啟動策略的組。
            • [install] e節:指定應將服務放置在Systemd層次結構中。

          創建此文件後 to:

  1. Reload systemd: systemctl daemon-reload
  2. Enable the service: systemctl enable mycustomservice
  3. Start the service: systemctl start mycustomservice
  4. Check the service status: systemctl status mycustomservice

Remember to replace placeholders like /path/to/my/script.sh, myuser, and mygroup with your actual values.正確設置用戶和組對於安全至關重要。 restart =始終 restartsec = 5 選項確保服務在崩潰時自動重新啟動,等待5秒鐘,然後嘗試重新啟動。在部署到生產環境之前,請務必徹底測試您的自定義服務。

以上是如何使用Linux中的SystemD管理系統服務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn