简介
- nginx启动脚本就是为了方便对nginx服务的启动,关闭,状态查询,热修改的一个脚本文件。
- 系统的服务都是默认在/usr/lib/systemd/system目录下的,是系统默认的存放路径,但是启动脚本的服务可以自己添加,因此为了便于控制及其查看,我们将该服务的脚本放在系统额外添加服务的目录/etc/systemd/system下面。
思路
- 可以安装一个httpd服务,对其服务的脚本加以修改,制作nginx的启动脚本。
过程
1.安装httpd服务,复制制作nginx的启动脚本模板
[root@server1 ~]# yum install httpd -y
[root@server1 l~]# cp /usr/lib/systemd/system/httpd.service /etc/systemd/system/nignx.service
2.修改启动脚本,文件编辑内容如下:
[root@server1 logs]# vim /etc/systemd/system/httpd.service
[Unit]
Description=The Nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid #pid文件
ExecStart=/usr/local/nginx/sbin/nginx #启动脚本的路径
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true[Install]
WantedBy=multi-user.target
3.测试:如果此时服务是开启的状态,我们必须先用脚本的方式关闭服务,再用systemd的方式开启服务。
4.开启服务
特殊情况
如果服务开启失败,提示我们查看服务的状态systemctl status nginx.service或查看日志,我们可以通过查看记录nginx进程的文件得到nginx服务master进程的pid,cat /usr/local/nginx/logs/nginx.pid,并且kill -9 master的pid。此时启动仍然会报错,是因为我们kill掉了master进程的pid,还有worker进程没被kill,因此使用ps -ef | grep nginx查看worker进程并将其worker进程的pid也kill掉,就可以开启服务了。