【问题标题】:Can't restart nginx web server无法重启 nginx 网络服务器
【发布时间】:2020-05-03 17:12:30
【问题描述】:

我有一个 DigitalOcean droplet,在将 laravel 应用程序投入生产后,我尝试了以下命令:

sudo systemctl reload nginx

但我收到此错误:

Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

我跑了 sudo nginx -t 看看是否有错误,但是 conf 和语法没问题,然后我跑了:

sudo nano /var/log/nginx/error.log

我得到了这个:

2020/01/16 14:53:53 [notice] 14195#14195: signal process started
2020/01/16 14:53:53 [error] 14195#14195: invalid PID number "" in "/run/nginx.pid"
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:443 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:443 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:443 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:443 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:443 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/01/16 14:53:53 [emerg] 14198#14198: still could not bind()

知道为什么我无法重新启动我的网络服务器,我的网络仍然可见,但我似乎无法重新启动或重新加载 nginx。

【问题讨论】:

    标签: ubuntu nginx server


    【解决方案1】:

    /run/nginx.pid 似乎有问题,由于某种原因它是空的。

    首先检查进程ps -ef | grep nginx为nginx找到threre根进程(在我的情况下7388

    root@keybu:/var/www/keybu_production#  ps -ef | grep nginx
    root      2314  9443  0 21:28 pts/0    00:00:00 grep nginx
    root      7388     1  0  2019 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
    nginx    23709  7388  0 Jan15 ?        00:00:04 nginx: worker process
    

    然后杀死它:

    kill -9 7388
    
    • 检查是否没有运行 nginx 进程,如果是也杀死它。

    然后重启nginxservice nginx start

    • 第二种解决方案是将进程的 ID 号写入/run/nginx.pid 但尚未测试

    【讨论】:

    • 你说你的是7388,但你杀了25057,这是为什么呢?另外,kill命令中的-9是什么意思?原谅我的菜鸟
    • @gabogabans 对不起,我的错误是端口7388 对我来说是固定代码......好眼睛。 -9 是进程的“信号”,它确保进程被有效地杀死。更多信息在这里:linux.die.net/man/1/kill
    猜你喜欢
    • 2016-09-05
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多