Nginx设置开机启动过程中遇到的问题
问题 /etc/init.d/nginx start 失败
/etc/init.d/nginx start
/etc/init.d/nginx: line 1: nx: command not found
Starting nginx (via systemctl): Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
systemctl status nginx.service
● nginx.service - SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2022-06-14 08:48:54 CST; 18min ago
Docs: man:systemd-sysv-generator(8)
Process: 2061 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=203/EXEC)
环境
# 操作系统:centos7 nginx-1.12.0
设置步骤
1、在/etc/init.d下创建文件nginx
# vim /etc/init.d/nginx
其内容参考nginx官方文档
需要注意的配置:
# nginx="/usr/local/nginx/sbin/nginx" //修改成nginx执行程序的路径。
# NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" //修改成nginx.conf文件的路径。
保存后设置文件的执行权限
[root@localhost ~]# chmod a+x /etc/init.d/nginx
2、至此就可以通过下面指令控制启动停止
/etc/init.d/nginx start
/etc/init.d/nginx stop
上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便。
原本以为只要按步骤来就是分分钟之内的事情,但是在第2步后,执行/etc/init.d/nginx start就报错了
[root@bigdata02 sbin]# /etc/init.d/nginx start
/etc/init.d/nginx: line 1: nx: command not found
Starting nginx (via systemctl): Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
[FAILED]
[root@bigdata02 sbin]# systemctl status nginx.service
● nginx.service - SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2022-06-14 08:48:54 CST; 18min ago
Docs: man:systemd-sysv-generator(8)
Process: 2061 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=203/EXEC)
Jun 14 08:48:54 bigdata02 systemd[1]: Starting SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server...
Jun 14 08:48:54 bigdata02 systemd[1]: nginx.service: control process exited, code=exited status=203
Jun 14 08:48:54 bigdata02 systemd[1]: Failed to start SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server.
Jun 14 08:48:54 bigdata02 systemd[1]: Unit nginx.service entered failed state.
Jun 14 08:48:54 bigdata02 systemd[1]: nginx.service failed.
3、在 /usr/lib/systemd/system
目录中添加 nginx.service
,根据实际情况进行修改,详细解析可查看下方参考资料中的文章。内容如下
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/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=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
4、查看nginx状态
[root@bigdata02 ~]# systemctl status nginx
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: http://nginx.org/en/docs/
5、启动nginx服务
[root@bigdata02 ~]# systemctl start nginx
[root@bigdata02 ~]# systemctl status nginx
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2022-06-14 10:21:33 CST; 3min 58s ago
Docs: http://nginx.org/en/docs/
Process: 2268 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
Process: 2267 ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 2270 (nginx)
Tasks: 2
CGroup: /system.slice/nginx.service
├─2270 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
└─2271 nginx: worker process
Jun 14 10:21:33 bigdata02 systemd[1]: Starting nginx - high performance web server...
Jun 14 10:21:33 bigdata02 nginx[2267]: nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
Jun 14 10:21:33 bigdata02 nginx[2267]: nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Jun 14 10:21:33 bigdata02 systemd[1]: Started nginx - high performance web server.
4、设置开机启动
systemctl enable nginx