V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
V2EX  ›  NGINX

nginx Failed to read PID from file /run/nginx.pid: Invalid argument

  •  
  •   tmackan · 2016-08-22 16:32:15 +08:00 · 2992 次点击
    这是一个创建于 519 天前的主题,其中的信息可能已经有所发展或是发生改变。

    启动 nginx 后查看 status 显示

    Redirecting to /bin/systemctl status nginx.service ● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since 一 2016-08-22 16:19:58 CST; 2min 51s ago Main PID: 13423 (nginx) CGroup: /system.slice/nginx.service ├─13423 nginx: master process /usr/sbin/nginx └─13424 nginx: worker process

    8 月 22 16:19:58 iZ230ph83b2Z systemd[1]: Starting The nginx HTTP and reverse proxy server... 8 月 22 16:19:58 iZ230ph83b2Z nginx[13417]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 8 月 22 16:19:58 iZ230ph83b2Z nginx[13417]: nginx: configuration file /etc/nginx/nginx.conf test is successful 8 月 22 16:19:58 iZ230ph83b2Z systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument 8 月 22 16:19:58 iZ230ph83b2Z systemd[1]: Started The nginx HTTP and reverse proxy server. 8 月 22 16:22:39 iZ230ph83b2Z systemd[1]: Started The nginx HTTP and reverse proxy server.

    Failed to read PID from file /run/nginx.pid: Invalid argument 这是为何, google 半天没解决,求大神指点。

    12 回复  |  直到 2016-08-26 13:14:36 +08:00
        1
    tmackan   2016-08-22 16:32:43 +08:00
    坐等大神
        2
    lostsquirrel   2016-08-22 16:57:51 +08:00
    你确定你有`/run` 这个目录
        3
    tmackan   2016-08-22 17:08:21 +08:00
    @lostsquirrel
    这个文件的确存在
    文件内容是
    13423
        4
    ss098   2016-08-22 17:13:35 +08:00 via Android
    @tmackan /run 应该是一个目录而不是文件,你备份一下这个文件然后创建 /run 目录。
        5
    lostsquirrel   2016-08-22 17:26:27 +08:00
    把 nginx.pid 这个文件删除了再启动
        6
    lhbc   2016-08-22 17:29:20 +08:00   ♥ 1
    因为 nginx 启动需要一点点时间,而 systemd 在 nginx 完成启动前就去读取 pid file
    造成读取 pid 失败

    解决方法很简单,让 systemd 在执行 ExecStart 的指令后等待一点点时间即可
    如果你的 nginx 启动需要时间更长,可以把 sleep 时间改长一点

    mkdir -p /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
    systemctl restart nginx.service
        7
    tmackan   2016-08-22 18:02:41 +08:00
    @lhbc 你好, nginx 正常启动了
    我用 uwsgi 开启了一个服务,分配了对应的端口号,防火墙也已经关闭,但是通过 IP 还是访问不了
    可能是什么原因呢?
        8
    tmackan   2016-08-22 18:06:21 +08:00
    @lhbc 显示拒绝了连接请求
        9
    lhbc   2016-08-22 18:13:39 +08:00
    @tmackan 指定了 server_name 的话,用 IP 可能无法访问
    curl -I -H "host: <DOMAIN>" <IP>
    替换 <> 里面的为你自己的域名和 IP ,测试看
        10
    tmackan   2016-08-22 18:28:21 +08:00
    @lhbc server_name 填写的是 ip 地址
        11
    tmackan   2016-08-22 18:29:08 +08:00
    @lhbc 还没有申请域名
    填写的是 ip:端口号
        12
    tmackan   2016-08-26 13:14:36 +08:00
    @lhbc 哥们你好,还得麻烦你有遇到这个问题吗?
    http://www.v2ex.com/t/301307#reply2
    感谢
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1129 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 65ms · UTC 00:05 · PVG 08:05 · LAX 16:05 · JFK 19:05
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1