centos7 systemctl配置開機自啓動服務

centos7使用systemctl替代原來/etc/init.d,按官方的說法是提升系統服務的運行效率、服務配置更加簡單易用,對於一些自定義的服務來配置開機自啓動,是真的香!centos

概念理解

  • 它是服務管理工具,融合以前service和chkconfig功能於一體
  • 有系統(system)和用戶(user)之分,可直接放/lib/systemd/system目錄下
  • 以.service結尾,通常分爲3部分:Unit、Service、Install

參數說明

Unit:主要對服務的說明

  • Description:用於描述服務而已
  • After:用於描述服務類別

Service:關鍵部分,服務運行的具體配置

參數太多,下面只列出幾個經常使用的關鍵參數,其它根據須要自行百度:
經常使用Type的幾種類型:bash

Type=simple 默認值,表示 ExecStart= 所設定的進程就是該服務的主進程。
Type=forking 後臺運行的形式。以 fork 方式從父進程建立子進程,建立後父進程會當即退出,配合PIDFile=使用,以幫助 systemd 準肯定位該服務的主進程。
Type=notify 與simple相似,但約定服務會在就緒後向systemd發送一個信號,須要配合NotifyAccess來讓Systemd接收消息。
  • User:是設置服務運行的用戶
  • Group:是設置服務運行的用戶組
  • PIDFile:爲存放PID的文件路徑
  • ExecStart:爲服務的具體運行命令
  • ExecReload:爲重啓命令
  • ExecStop:爲中止命令
  • Environment:指定環境變量

注意:全部命令要求使用絕對路徑,使用相對路徑會報錯。工具

Install:服務安裝的相關設置,用來定義啓動以及是否開機啓動

  • WantedBy:它的值是一個或多個 Target,當前 Unit 激活時(enable)符號連接會放入/etc/systemd/system目錄下面以 Target 名 + .wants後綴構成的子目錄中
  • Alias:當前 Unit 可用於啓動的別名

使用案例

  • 以uwsgi配置爲例:
## cat /lib/systemd/system/uwsgi.service 
[Unit]
Description=uWSGI Emperor
After=syslog.target

[Service]
#PIDFile=/run/uwsgi.pid
ExecStart=/usr/local/bin/uwsgi --ini /home/dengzhixu/crawl_data/uwsgi.ini
Restart=always
KillSignal=SIGQUIT
Type=notify
#Type=forking
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target
  • 添加可執行權限:
chmod +x /lib/systemd/system/uwsgi.service

經常使用命令

## 啓動服務
systemctl start uwsgi.service
  
## 中止服務
systemctl stop uwsgi.service
  
## 重啓服務
service uwsgi restart
systemctl restart uwsgi.service
  
## 服務自啓動
systemctl enable uwsgi.service
  
## 服務關閉自動啓動
systemctl disable uwsgi.service
  
## 檢查服務狀態
systemctl status uwsgi.service
  
## 顯示全部已啓動的服務
systemctl list-units  --type=service

其它須要配置的服務,可自行參考畫葫蘆。
----by 鋼鐵 648403020@qq.com 09.10.2020centos7

相關文章
相關標籤/搜索