使用systemctl管理指定服务需要做的配置
前戏
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