1.背景及描述
当我使用
systemctl start nginx.service
或者
service nginx start
命令启动nginx,发现启动失败.当使用
nginx -t
却显示OK.查看状态,信息如下:
[root@localhost logs]# 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 五 2020-10-16 10:52:10 CST; 11s ago
Docs: man:systemd-sysv-generator(8)
Process: 38258 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=203/EXEC)
10月 16 10:52:10 localhost.localdomain systemd[1]: Starting SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server...
10月 16 10:52:10 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=203
10月 16 10:52:10 localhost.localdomain systemd[1]: Failed to start SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server.
10月 16 10:52:10 localhost.localdomain systemd[1]: Unit nginx.service entered failed state.
10月 16 10:52:10 localhost.localdomain systemd[1]: nginx.service failed.
2.临时解决方案
2.1 使用./nginx启动
参考多篇博客均以失败告终,最后偶然发现,如果通过安装目录下sbin中的nginx可以正常启动.命令如下:
#进入nginx安装目录下的sbin目录,并指定配置文件启动
./nginx -c /etc/local/nginx/conf/nginx.conf
2.2 杀掉./nginx启动的进程,再使用service方式启动
也有博客是这样说的
只是很多时候我们都先用/usr/local/nginx/sbin/nginx来启动了nginx
只要找到这个进程kill掉以后,再执行/etc/rc.d/init.d/nginx start就一切正常了
即:先kill掉./nginx启动的进程,然后再换成service nginx start方式启动
3.总结
如果符合如下状态
-
nginx -t
显示状态ok -
systemctl start nginx.service
或者
service nginx start
命令启动nginx失败 -
报错信息为:
nginx.service - SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
-
报错信息为:
Process: 38258 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=203/EXEC)
请尝试:
-
更改为
./nginx -c /etc/local/nginx/conf/nginx.conf
方式启动或重启 - kill掉./nginx启动的进程,然后再换成service nginx start方式启动
查错不易,如有帮助,请不吝点赞
版权声明:本文为java0506原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。