linux中透過systemctl建立服務並實現開機啟動

小泥巴2008發表於2024-04-11

目錄
  • centos7下,systemctl可以理解為systemd的一個工具
  • 建立Unit file配置檔案
  • 載入配置
  • 啟動服務
  • 停止服務
  • 設定服務開機啟動
  • 關閉服務開機啟動
  • 更多命令
  • 檢視服務產生的日誌

centos7下,systemctl可以理解為systemd的一個工具

建立Unit file配置檔案

systemctl是透過Unit管理單元的形式來新增service的,建立Unit file配置檔案即可
在/usr/lib/systemd/system 目錄下建立xxx.service這種字尾的服務檔案

[Unit]
Description=xxx.server
After=network.target

[Service]
ExecStart=/usr/bin/python -u /mnt/e/test.py
#WorkingDirectory=/mnt/e
StandardOutput=inherit
StandardError=inherit
Restart=always
User=root

[Install]
WantedBy=multi-user.target

載入配置

新增完unit file檔案後重新載入配置檔案,獲取更改的配置並重新生成依賴樹。

systemctl daemon-reload

啟動服務

systemctl start xxx.service

停止服務

systemctl stop xxx.service

設定服務開機啟動

systemctl enable xxx.service

關閉服務開機啟動

systemctl disable xxx.service

更多命令

systemctl list-units --type=service  #檢視當前的服務列表狀態
systemctl list-unit-files --type=service  #檢視當前可用的服務單元
systemctl list-unit-files --type=service | grep xxx.service  #檢視具體的某個服務單元
systemctl start xxx.service #啟動一個服務
systemctl stop xxx.service #關閉一個服務
systemctl restart xxx.service #重啟一個服務
systemctl status xxx.service  #顯示一個服務的狀態
systemctl enable xxx.service #在開機時啟用一個服務
systemctl disable xxx.service #在開機時禁用一個服務
systemctl is-enabled xxx.service #檢視服務是否開機啟動
systemctl show xxx.service #檢視服務的所有資訊
systemctl mask|unmask firewalld: #登出,取消登出服務 服務被登出後該服務就無法透過systemctl進行啟停管理

檢視服務產生的日誌

journalctl -xe -u xxx.service
# 檢視日誌已佔用的空間
journalctl --disk-usage
# –vacuum-size=1G #設定日誌最大佔用空間
# –vacuum-time=1years #設定日誌最大儲存時間

相關文章