Centos7-Systemd-Service自定義編寫Service應用服務配置說明整理
From https://github.com/ljq/linux-note/blob/master/Centos7-Systemd-Service.md
系統(tǒng)基本service服務配置目錄(此目錄勿動,一般情況下只放系統(tǒng)核心基礎服務配置,否存放應用注冊類服務配置):
/etc/systemd/system
自定義服務配置管理目錄(存放自定義應用注冊類服務和第三方服務類配置):
/usr/lib/systemd/system/
自定義.service配置文件 (權限:754) 格式(以應用app-run.service為例, 執(zhí)行文件作好超時處理!):
[Unit]
Description="app-run@Author Jack Liu Process Daemon" # 服務描述
After=rc-local.service # 服務類別:
# 例啟動順序(默認在rc-local.service之后調用執(zhí)行)
[Service]
Type=forking # 優(yōu)先使用forking方式:
# (遵循傳統(tǒng)Unix做法,設置PIDFile=選項
# 幫助systemd準確定位該服務的主進程)
PIDFile=/var/run/app-run.pid # 設置應用進程的PID(缺?。?Environment="GOPATH=/usr/local/go" # 環(huán)境變量設置,可設置多個Environment=項
# 備注:Environment= 或 EnvironmentFile=
# 引用文件, 兩種方式皆可
ExecStart=/data/auto_run.sh start # 調用啟動可執(zhí)行文件:
# (Service配置全部使用絕對路徑,
# 可執(zhí)行文件內命令用絕對的路徑格式)
ExecReload=/data/auto_run.sh reload # 重新加載(缺?。?ExecStop=/data/auto_run.sh stop # 停止服務(缺?。?DefaultTimeoutStartSec=30 # 服務啟動允許的最大時長,超時時間(默認無單位:秒)
# 單位:"ms"(毫秒), "s"(秒), "min"(分鐘),
# "h"(小時), "d"(天), "w"(周)
PrivateTmp=True # 是否分配獨立的臨時空間(缺?。?
[Install]
WantedBy=multi-user.target
EnvironmentFile默認約定引用存放目錄一般為:
/usr/lib/systemd/system/app-run.service.d/environment.conf
(格式:Key=Value)
Service服務管理常用操作命令
在開機時啟用一個服務:systemctl enable app-run.service
在開機時禁用一個服務:systemctl disable app-run.service
啟動一個服務:systemctl start app-run.service
關閉一個服務:systemctl stop app-run.service
重啟一個服務:systemctl restart app-run.service
顯示一個服務的狀態(tài):systemctl status app-run.service
查看服務是否開機啟動:systemctl is-enabled app-run.service
查看已啟動的服務列表:systemctl list-unit-files|grep enabled
注意:服務無法執(zhí)行檢查SElinux是否開啟,自行關閉SElinux。
https://github.com/ljq/linux-note/blob/master/Centos7-Systemd-Service.md