Nginx封装为CentOS7的服务

已经安装好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

  • 修改nginx配置文件,开启pid
    pid /var/run/nginx.pid;
  • 通过上述方式关闭nginx服务
  • 配置服务,在/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

猜你喜欢

转载自blog.csdn.net/weixin_33806914/article/details/87232320