nginx 无法停止 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
endlesslove
V2EX    NGINX

nginx 无法停止

  •  
  •   endlesslove 2020 年 4 月 25 日 5631 次点击
    这是一个创建于 2102 天前的主题,其中的信息可能已经有所发展或是发生改变。

    nginx -s quit nginx: [error] invalid PID number "" in "/var/run/nginx.pid"

    请教这是怎么一回事?

    30 条回复    2020-04-26 15:07:17 +08:00
    unoxunoy
        1
    unoxunoy  
       2020 年 4 月 25 日 via iPhone   1
    用 ps 查询 nginx 的 pid 号,再将 pid 号写到提示的.pid 文件中;或者查到 pid 号后直接 kill
    BrettD
        2
    BrettD  
       2020 年 4 月 25 日 via iPhone
    字面意思是从 /var/run/nginx.pid 这个文件读取 nginx 的 PID 读到的是空白的
    dot2017
        3
    dot2017  
       2020 年 4 月 25 日
    我一般直接 killall nginx……
    airyland
        4
    airyland  
       2020 年 4 月 25 日 via iPhone
    善用搜索引擎
    endlesslove
        5
    endlesslove  
    OP
       2020 年 4 月 25 日
    @unoxunoy vi /var/run/nginx.pid 这个文件改如何写,我查询到 15480
    gesse
        6
    gesse   2020 年 4 月 25 日
    你是不是系统里有多个 nginx ?
    Guys
        7
    Guys  
       2020 年 4 月 25 日   1
    @endlesslove pid 文件是记录 nginx 启动的进程号的,你查到进程号了,只须 kill -9 15480
    gesse
        8
    gesse  
       2020 年 4 月 25 日
    package manager(如 apt-get install) 安装里一个, 又用编译等方法安装了一个?
    endlesslove
        9
    endlesslove  
    OP
       2020 年 4 月 25 日
    @gesse 我没有编译安装过,只有 apt-get install 一个
    endlesslove
        10
    endlesslove  
    OP
       2020 年 4 月 25 日
    ps -ax | grep nginx

    查看了有一个 master process 和 nginx: worker process

    是否是这两个东西重叠了,请教大家帮助!
    WuMengDi
        11
    WuMengDi  
       2020 年 4 月 25 日
    1,两个 nginx 冲突了,
    WuMengDi
        12
    WuMengDi  
       2020 年 4 月 25 日
    @WuMengDi 2,nginx 压根就没起来
    endlesslove
        13
    endlesslove  
    OP
       2020 年 4 月 25 日
    cat /lib/systemd/system/nginx.service
    [Unit]
    Description=nginx - high performance web server
    Documentation=http://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target

    [Sevice]
    Type=forking
    PIDFile=/var/run/nginx.pid
    ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID

    [Install]
    WantedBy=multi-user.target
    root@localhost:~# cat /etc/systemd/system/multi-user.target.wants/nginx.service
    [Unit]
    Description=nginx - high performance web server
    Documentation=http://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target

    请教大家,着否这里需要设置过才能关机?
    PbCopy111
        14
    PbCopy111  
       2020 年 4 月 25 日
    @endlesslove 我有个小白问题啊。。为啥不用 systemctl stop nginx 来停止呢?
    endlesslove
        15
    endlesslove  
    OP
       2020 年 4 月 25 日
    @PbCopy111 nginx -s quit nginx: [error] invalid PID number "" in "/var/run/nginx.pid" 返回的就是这样!
    endlesslove
        16
    endlesslove  
    OP
       2020 年 4 月 25 日
    ps -ef | grep nginx
    显示依然在运行,不解,新手需要帮助
    cocowind
        17
    cocowind  
       2020 年 4 月 25 日
    直接 kill 掉....我之前不知不觉起了十几个.
    win 平台
    movieatravelove
        18
    movieatravelove  
       2020 年 4 月 25 日 via Android
    kill -9 pid 就完事了
    1daydayde
        19
    1daydayde  
       2020 年 4 月 25 日
    1 楼正解。
    也不知道是 nginx 的 bug 还是被误删了,ps 查到 pid 再 echo 到那个文件里就可以了。
    PbCopy111
        20
    PbCopy111  
       2020 年 4 月 25 日
    ```
    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
    ```

    ```systemctl restart nginx```
    also24
        21
    also24  
       2020 年 4 月 25 日
    两件事:
    1 、 现在先使用 ps -aux | grep nginx 找到 nginx master 的 PID,然后手动 kill 掉。
    这一步也可以使用 1 楼的方法,将 pid 直接写进 /var/run/nginx.pid 文件。

    2 、 检查你的 /var/run/nginx.pid 文件的权限,看 nginx 的启动用户是否有权限写入。
    MilkShake
        22
    MilkShake  
       2020 年 4 月 25 日
    killall
    learningman
        23
    learningman  
       2020 年 4 月 25 日
    @PbCopy111 不一定写了 systemd 的配置
    nicebird
        24
    nicebird  
       2020 年 4 月 25 日
    就是没 pid 文件呗
    sazima
        25
    sazima  
       2020 年 4 月 25 日
    pkill nginx
    androidkily
        26
    androidkily  
       2020 年 4 月 26 日 via Android
    改个 pid,或者手动创建
    Tinyang
        27
    Tinyang  
       2020 年 4 月 26 日
    我在 centos 7 也遇到过,我是直接删 nginx.pid, 然后 kill 的
    brader
        28
    brader  
       2020 年 4 月 26 日
    你先看下 pid 文件里是什么内容,cat /var/run/nginx.pid
    很有可能是这种情况,比如,pid 不存在于那个文件,或者 pid 文件里面存的 pid 是这样的:12345%,
    他多了一个%号,然后命令就出错了
    Alucns
        29
    Alucns  
       2020 年 4 月 26 日
    killall nginx
    winzkh
        30
    winzkh  
       2020 年 4 月 26 日 via iPad
    killall -9 nginx
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4886 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 03:55 PVG 11:55 LAX 19:55 JFK 22:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86