如果ngxin不能使用service nginx start 开启

如果ngxin不能使用service nginx start 开启,报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,则写入以下代码到nginx.service并放到/usr/lib/systemd/system下:

[unit]

Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/nginx
ExecReload=/usr/local/nginx/nginx -s reload
ExecStop=/usr/local/nginx/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

以上环境在centos7,nginx版本为1.12.1

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

通常来说如果不是必须可以不用上面的方法,当在当前环境下开启或关闭遇到问题时应先用以下命令看下nginx的状态,然后根据状态来解决问题:

命令 :systemctl status nginx

当不能使用service nginx start 开启或者使用service nginx stop 关闭时,查看systemctl status nginx 会有一定的错误提示,拿我遇到的来说有如下提示:

Jul 13 06:07:11 localhost.localdomain systemd[1]: PID file /var/run/nginx.pid not readable (yet?) after start.
这个提示是说在/etc/init.d/nginx这个文件中pidfile所指定的路径没有可读权限,当打开这个文件发现这行是被#所注释的,但想要解决这个问题还是需要把这个路径换为一个可读的,如下:

/usr/local/nginx/nginx.pid。


然后使用systemctl daemon-reload 更新下systemctl。

通过以上操作后发现service nginx start 不再有问题,但是stop还是不能停止,查看/etc/init.d/nginx这个文件后发现stop函数在运行后会删除掉$lockfile所指定的文件即:lockfile=/var/lock/subsys/nginx,而当打开这个目录发现在nginx停止后subsys目录下的nginx并没有被删除,所以导致使用service nginx stop 命令停止nginx不成功,解决这个问题只需使用root账户把此文件打开然后使用:wq保存一下即可。过后使用ll /var/local/subsys/nginx 发现这个文件的权限为644即可。

当然最好是在配置/etc/init.d/nginx时将其路径修改为有权限的目录下如:

lockfile=/usr/local/nginx/lock/nginx

这样即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值