自定义服务文件,添加到系统服务,通过Systemctl管理
使用vim创建服务文件 服务名.service文件,例如:nginx.service、redis.service、supervisord.service
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking 是后台运行的形式
ExecStart 为服务的具体运行命令
ExecReload 为服务的重启命令
ExecStop 为服务的停止命令
PrivateTmp=True 表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
[Install] 服务安装的相关设置,可设置为多用户
WantedBy=multi-user.target
赋予服务文件755权限
ARM(UOS、麒麟)将服务文件放至目录路径:/usr/lib/systemd/system
X86(UBuntu)将服务文件放至目录路径:/lib/systemd/system
设置开机自启动(任意目录下执行)。如果执行启动命令报错,则执行:systemctl daemon-reload
设置开机自启动
[root@localhost ~]# systemctl enable nginx.service
[root@localhost ~]# systemctl enable supervisord
停止开机自启动
[root@localhost ~]# systemctl disable nginx.service
[root@localhost ~]# systemctl disable supervisord
验证一下是否为开机启动
[root@localhost ~]# systemctl is-enabled nginx
[root@localhost ~]# systemctl is-enabled supervisord
其他命令
启动nginx服务
[root@localhost ~]# systemctl start nginx.service
停止nginx服务
[root@localhost ~]# systemctl stop nginx.service
重启nginx服务
[root@localhost ~]# systemctl restart nginx.service
查看nginx服务当前状态
[root@localhost ~]# systemctl status nginx.service
查看所有已启动的服务
[root@localhost ~]# systemctl list-units --type=service
服务文件示例:
supervisord.service进程管理服务文件
[Unit]
Description=Process Monitoring and Control Daemon # 内容自己定义:Description=Supervisor daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop= /usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
Restart=on-failure
RestartSec=42s
KillMode=process
[Install]
WantedBy=multi-user.target
nginx.service服务文件
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
redis.service服务文件
[Unit]
Description=Redis
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=kill -INT `cat /tmp/redis.pid`
User=www
Group=www
[Install]
WantedBy=multi-user.target