centos 7 systemctl配置nginx服务

编译安装好nginx后,正常启动方式
例如我的安装目录是/usr/local/nginx
修改配置后重新加载生效
/usr/local/nginx/sbin/nginx -s reload
重新打开日志文件
/usr/local/nginx/sbin/nginx -s reopen
测试nginx配置文件是否正确
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
快速停止nginx
/usr/local/nginx/sbin/nginx -s stop
完整有序的停止nginx
/usr/local/nginx/sbin/nginx -s quit
注:stop和quit的区别在于
quit是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求
Stop 是快速关闭,不管有没有正在处理的请求。

其他的停止nginx 方式:
ps -ef | grep nginx

kill -QUIT 主进程号 :从容停止Nginx
kill -TERM 主进程号 :快速停止Nginx
pkill -9 nginx :强制停止Nginx

平滑重启nginx:
kill -HUP 主进程号

为了方便,现将nginx服务添加至systemctl
1.修改nginx配置文件,开启pid
pid /var/run/nginx.pid;
2.通过上述方式关闭nginx服务
3.配置服务,在/usr/lib/systemd/system/新建nginx.service文件,vim编辑如下

[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
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
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别

[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

[Install]部分是服务安装的相关设置,可设置为多用户的

服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下
然后执行(修改或新增文件需要执行以下语句才能生效)
systemctl daemon-reload
这时就可以利用systemctl进行配置了
systemctl start/stop/reload/quit nginx.service
若发生报错,可通过systemctl status nginx.service查看失败原因
systemctl enable nginx.service 开机自启动

没有更多推荐了,返回首页