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

(三)验证配置

Centos7添加配置systemctl自定义服务_自定义