Centos7我们使用yum安装的MySQL,Nginx等,都可以很方便地通过systemctl start/stop servicename控制服务启停。那要是我们自己自定义安装的应用,如二进制或者源码安装的MySQL等应用,是否也可以配置成通过systemctl来控制服务启停呢?
答案是可以的。其实也比较简单,以Nginx为例,我们只需要配置nginx.service服务文件即可。具体配置,分以下三步如下:
(一)确认自定义安装服务启停脚本和Pid文件路径
我的MySQL启停脚本分别为:
启动服务命令/usr/local/nginx/sbin/nginx
重新加载命令/usr/local/nginx/sbin/nginx -s reload
停止服务命令/usr/local/nginx/sbin/nginx -s stop
PID文件路径/usr/local/nginx/logs/nginx.pid
(二)编辑nginx.service文件
该文件建立在在/usr/lib/systemd/system/目录下
[root@localhost system]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx service
After=nginx.service
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
关于以上参数解释:
[Unit] #服务说明
Description= #服务描述
After= #服务描述
[Service] #服务关键配置参数
Type=forking #forking指后台运行
PIDFile= #PID文件路径和命令
ExecStart= #启动脚本路径和命令
ExecReload= #重新加载脚本和路径
ExecStop= #服务停止脚本和路径
[Install] #服务安装设置,可配置为多用户
WantBy=multi-user.target
(三)验证配置