nginx启动报错:Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' fo

一、背景

      这个错误在重启nginx或者启动nginx的时候,经常会出现。我之前也一直认为出现这个错误是因为有程序占用了nginx的进程。但是知其然不知其所以然。每次报错都有点懵逼,所以这边一步步排查错误,做个记录。 

二、排错过程

1、按照提示

//按照提示,执行此命令,查看错误原因
 systemctl status nginx.service


由报错信息可知,nginx绑定80端口失败。详细错误请输入 -l 继续查看

2、继续跟踪错误

//查看错误的详情
systemctl status nginx.service -l

这里输入 -l 之后,说实话,差距并不大。原因还是绑定端口失败。

3、nginx配置文件有错误

运行下面命令查看修改

nginx -t

4、已经启动nginx或者配置文件中的端口号被占用

4.1检查端口是否被占用,如果端口已经被占用,自己权衡一下是换个端口还是把占用端口的进程杀掉

netstat -tnlp

4.2检查nginx是否已经启动

ps -aux | grep nginx

如果已经启动使用下面命令干掉即可

pkill -9 nginx

三、解决方案

1、查看此时占用80端口的程序

netstat -ntlp | grep 80



这里可以看到,80端口是被占用的 。我们再详细看看占用80的是什么

ps -ef | grep 80

然后找到pid,杀掉这些程序

//-s 9 代表的是快速强制的杀掉pid程序
kill -s 9 pid

2、杀到没有程序可杀为止,然后启动nginx

 

此时启动成功。

转载自:https://blog.csdn.net/LJFPHP/article/details/79102840

原文地址:https://www.cnblogs.com/wang-yaz/p/9451312.html