使用systemd在Linux上管理系統服務

一、systemd簡介

systemd是一種Linux系統管理工具,用於啟動、停止、管理守護進程、解決系統啟動問題以及其他系統和服務管理任務。

與SysV init腳本相比,systemd使用分離的單元(unit)文件代替了腳本,具有更強大的控制和配置能力。

在Linux系統上使用systemd來管理系統服務可以提高系統管理的效率和複雜性,也可以提供更好的調試和故障排除功能。

二、systemd應用

1. 創建和管理服務

在Linux系統上,可以通過systemctl命令來啟動、停止、重啟、重新載入、禁用、啟用和查看系統服務狀態。

創建systemd服務的步驟如下:

1. 創建服務的description文件(.service): 
# touch /etc/systemd/system/my_service.service

2. 編寫服務的配置 
[Unit]
Description=My Service
After=network-online.target
Wants=network-online.target

[Service]
User=root
ExecStart=/usr/bin/my_service

[Install]
WantedBy=multi-user.target

3. 重新載入systemctl配置 
# systemctl daemon-reload

4. 啟用服務 
# systemctl enable my_service

5. 啟動服務 
# systemctl start my_service

2. 管理進程和socket

systemd可以通過socket和進程(process)的方式來控制系統服務,使用socket可以實現更快的服務響應和更少的系統資源佔用。同時,systemd還可以使用cgroups來管理和限制服務進程的資源。

使用socket管理服務的步驟如下:

1. 創建socket文件(.socket) 
# touch /etc/systemd/system/my_service.socket

2. 編寫socket的配置 
[Unit]
Description=My Service Socket

[Socket]
ListenStream=192.168.1.1:9999

[Install]
WantedBy=sockets.target

3. 創建服務文件(.service)
# touch /etc/systemd/system/my_service.service

4. 編寫服務的配置 
[Unit]
Description=My Service
After=network-online.target
Wants=network-online.target

[Service]
User=root
ExecStart=/usr/bin/my_service
Sockets=my_service.socket

[Install]
WantedBy=multi-user.target

5. 重新載入systemctl配置 
# systemctl daemon-reload

6. 啟用服務 
# systemctl enable my_service.socket

7. 啟動服務 
# systemctl start my_service.socket

使用進程管理服務的步驟如下:

1. 創建服務文件(.service) 
# touch /etc/systemd/system/my_service.service

2. 編寫服務的配置 
[Unit]
Description=My Service
After=network-online.target
Wants=network-online.target

[Service]
User=root
ExecStart=/usr/bin/my_service
CPUAccounting=true
MemoryAccounting=true

[Install]
WantedBy=multi-user.target

3. 重新載入systemctl配置 
# systemctl daemon-reload

4. 啟用服務 
# systemctl enable my_service

5. 啟動服務 
# systemctl start my_service

3. 使用systemd-timers來管理系統任務

systemd-timers可以作為一個簡單而靈活的任務管理器,用於計劃運行和定時任務的執行。systemd-timers功能非常強大,可以實現定時執行命令、重複運行任務等作業調度功能。

systemd-timers是基於systemd的,因此可以像管理其他服務一樣管理它們。

使用systemd-timers的步驟如下:

1. 創建定時任務文件(.timer) 
# touch /etc/systemd/system/my_timer.timer

2. 編寫定時任務的配置 
[Unit]
Description=My Timer

[Timer]
OnCalendar=*-*-* 12:30:00
Unit=my_service.service

[Install]
WantedBy=timers.target

3. 創建服務文件(.service)
# touch /etc/systemd/system/my_service.service

4. 編寫服務的配置 
[Unit]
Description=My Service
After=network-online.target
Wants=network-online.target

[Service]
User=root
ExecStart=/usr/bin/my_service

[Install]
WantedBy=multi-user.target

5. 重新載入systemctl配置 
# systemctl daemon-reload

6. 啟用定時任務 
# systemctl enable my_timer.timer

7. 啟動定時任務 
# systemctl start my_timer.timer

三、總結

systemd是一個非常強大的Linux系統管理工具,可以用來管理系統和服務,實現更方便的操作和配置,同時也提供了更強大的監控和故障排除功能。

通過創建和管理服務、管控進程和socket、以及使用systemd-timers管理系統任務,我們可以更進一步提升Linux系統的服務管理能力。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/278856.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-20 15:02
下一篇 2024-12-20 15:02

相關推薦

  • 銀行資金管理系統總結

    銀行資金管理系統是銀行日常業務運營的核心支撐系統,主要負責處理銀行的資金流動、結算、清算等業務。本文將從功能特點、技術架構、安全性以及未來發展趨勢等多個方面對銀行資金管理系統進行詳…

    編程 2025-04-29
  • 北化教務管理系統介紹及開發代碼示例

    本文將從多個方面對北化教務管理系統進行介紹及開發代碼示例,幫助開發者更好地理解和應用該系統。 一、項目介紹 北化教務管理系統是一款針對高校學生和教職工的綜合信息管理系統。系統實現的…

    編程 2025-04-29
  • Python員工管理系統

    Python員工管理系統是一款基於Python語言開發的企業級應用軟體,它可以幫助企業高效地管理員工信息,提高管理效率和工作質量。下面我們將從多個方面對該系統進行詳細闡述。 一、系…

    編程 2025-04-28
  • Python 進度管理系統

    本文將從多個方面詳細闡述 Python 進度管理系統,包括如何使用 Python 進行進度管理系統的開發以及管理、優化等方面的問題。 一、系統開發 為了開發一個完善的進度管理系統,…

    編程 2025-04-27
  • 如何在Linux中添加用戶並修改配置文件

    本文將從多個方面詳細介紹在Linux系統下如何添加新用戶並修改配置文件 一、添加新用戶 在Linux系統下創建新用戶非常簡單,只需使用adduser命令即可。使用以下命令添加新用戶…

    編程 2025-04-27
  • 製作一個簡單的管理系統的成本及實現

    想要製作一個簡單的管理系統,需要進行技術選型、開發、測試等過程,那麼這個過程會花費多少錢呢?我們將從多個方面來闡述製作一個簡單的管理系統的成本及實現。 一、技術選型 當我們開始思考…

    編程 2025-04-27
  • Python管理系統設計報告

    本文將從系統設計、數據存儲、界面設計、安全性等多個方面,詳細闡述Python管理系統的設計,為讀者提供完整且系統的解決方案。 一、系統設計 Python管理系統的設計需要考慮到系統…

    編程 2025-04-27
  • 如何解決linux jar包 invalid or corrupt jarfile問題

    對於許多開發人員和系統管理員在Linux環境下使用Java開發過程中遇到的一個常見的問題是 invalid or corrupt jarfile(無效或損壞的jar文件)錯誤。當您…

    編程 2025-04-27
  • 在Linux上安裝JRE並配置環境變數

    本文將從以下幾個方面為您詳細闡述如何在Linux系統上,通過自己賬戶安裝JRE,並且配置環境變數。 一、安裝JRE 在進行安裝前,我們需要下載JRE的安裝包並解壓,可以從官方網站下…

    編程 2025-04-27
  • GTKAM:Linux下的照片管理器

    GTKAM是用於Linux操作系統的一款照片管理器,它支持多種相機及存儲設備,並提供了一系列強大的工具,讓用戶可以方便地瀏覽、管理、編輯和導出照片。本文將從多個方面對GTKAM進行…

    編程 2025-04-27

發表回復

登錄後才能評論