无法从文件/run/nginx.pid读取PID,但网站正常运行

时间:2018-08-01 05:30:41

标签: django nginx uwsgi

当我检查Nginx的状态时

sudo service nginx status

Aug 01 12:35:07 iz2ze9wve43n2nyuvmsfx5z systemd[1]: Starting The nginx HTTP and reverse proxy server...
....
Aug 01 12:35:07 iz2ze9wve43n2nyuvmsfx5z systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument
Aug 01 12:35:07 iz2ze9wve43n2nyuvmsfx5z systemd[1]: Started The nginx HTTP and reverse proxy server.

它报告“无法从文件/run/nginx.pid读取PID:无效的参数”

但是,我的网站正常运行

我的custom_nginx.conf

server {
    listen 80;
    server_name *.example.com  39.105.51.**;
    charset utf-8;

    location / {
                uwsgi_read_timeout 30;
        uwsgi_pass 127.0.0.1:8200;
        include uwsgi_params;
   }

    location /media/ {
        alias /usr/share/nginx/html/;
                autoindex on;
   }
    location /static/ {
        alias /root/forum/dst_static/;
   }
}

我可以正常访问www.example.com和39.105.51。**。
我应该忽略它吗,什么样的错误正在等着我呢?

1 个答案:

答案 0 :(得分:1)

您似乎遇到了Nginx和systemd之间的已知竞争情况(错误)。这似乎在低资源机器上很普遍,尤其是如果它们只有一个CPU。

基本上,发生的是systemd期望在Nginx分叉之前填充PID文件。但是在资源不足的机器上,这是在Nginx fork有时间创建它之前发生的。这样您会记录一个错误。

无非是烦恼,所以如果您不想的话,就不需要做任何事情。如果您真的想停止它,那么Ubuntu bug report上有解决方法:

mkdir /etc/systemd/system/nginx.service.d
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" \
    > /etc/systemd/system/nginx.service.d/override.conf
systemctl daemon-reload

应用该方法后,尝试重新启动Nginx并查看它是否仍然存在。

systemctl restart nginx

您不应再收到该消息。