Nginx应用与运维实战
上QQ阅读APP看书,第一时间看更新

2.5.3 注册系统服务

CentOS系统环境中使用systemd进行系统和服务管理,可以按需守护进程,并通过systemctl命令进行systemd的监测和控制。为了方便Nginx应用进程的维护和管理,此处把Nginx注册成系统服务,由systemd进行服务管理,命令如下。


cat >/usr/lib/systemd/system/nginx.service <<EOF
[Unit]                                                # 记录service文件的通用信息
Description=The Nginx HTTP and reverse proxy server   # Nginx服务描述信息
After=network.target remote-fs.target nss-lookup.target  # Nginx服务启动依赖,在指定服务之后启动

[Service]                                         # 记录service文件的service信息
Type=forking                                     # 标准UNIX Daemon使用的启动方式
PIDFile=/run/nginx.pid                            # Nginx服务的pid文件位置
ExecStartPre=/usr/bin/rm -f /run/nginx.pid       # Nginx服务启动前删除旧的pid文件
ExecStartPre=/usr/local/nginx/sbin/nginx -t -q    # Nginx服务启动前执行配置文件检测
ExecStart=/usr/local/nginx/sbin/nginx -g "pid /run/nginx.pid;"  # 启动Nginx服务
ExecReload=/usr/local/nginx/sbin/nginx -t -q      # Nginx服务重启前执行配置文件检测
ExecReload=/usr/local/nginx/sbin/nginx -s reload -g "pid /run/nginx.pid;"  
                                                 # 重启Nginx服务
ExecStop=/bin/kill -s HUP $MAINPID                # 关闭Nginx服务
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]                                         # 记录service文件的安装信息
WantedBy=multi-user.target                        # 多用户环境下启用
EOF

systemctl enable nginx                            # 将Nginx服务注册为系统启动后自动启动
systemctl start nginx                             # 启动Nginx服务命令
systemctl reload nginx                            # reload Nginx服务命令
systemctl stop nginx                              # stop Nginx服务命令
systemctl status nginx                            # 查看Nginx服务运行状态命令