前戲
Centos 7服務的systemctl腳本存放在:/usr/lib/systemd,其中有系統服務(system)和用戶(user)之分
我們一般把需要systemctl管理的服務放到/usr/lib/systemd/目錄下
而且,每一個服務以通常.service
結尾,並且該腳本一般分為三個部分:Unit、Service、Install
配置systemctl管理服務的腳本如下
[Unit] #對服務的說明部分
Description=xxx
After=network.target #描述服務類別,表示本服務需要在network服務啟動后在啟動
Before=xxx.service # 表示需要在某些服務啟動之前啟動,After和Before字段只涉及啟動順序,不涉及依賴關系。
[Service] #核心部分
Type=forking #后台運行模式
User=user #設置服務運行的用戶
Group=user #設置服務運行的用戶組
PIDFile=/usr/local/xxx #存放PID的絕對路徑
KillMode=control-group #定義systemd如何停止服務
ExecStart=/usr/local/bin/forever start /node.js/xiyoulib/bin/www
ExecReload=/usr/local/bin/forever restart /node.js/xiyoulib/bin/www
ExecStop=/usr/local/bin/forever stop /node.js/xiyoulib/bin/www
Restart=no #定義服務進程退出后,systemd的重啟方式,默認是不重啟
PrivateTmp=true #表示給服務分配獨立的臨時空間
[Install] #服務的相關部分
WantedBy=multi-user.target #多用戶
注意該腳本配置好之后,需要授予755的權限保存在/usr/lib/systemd目錄下,然后我們就可以使用systemctl管理指定的服務了
systemctl相關命令
#查看當前的運行級別
systemctl get-default
#設置默認的運行級別
systemctl set-default multi-user.target
#切換運行級別(不需要重啟)
systemctl isolate multi-user.target
systemctl isolate graphical.target
#systemctl管理服務
systemctl start xxx
systemctl stop xxx
systemctl restart xxx
systemctl reload xxx
systemctl enable xxx
systemctl disable xxx
#systemctl配置開機自啟動原理
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target