nginx 无法停止

2020-04-25 12:40:14 +08:00
 endlesslove

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

请教这是怎么一回事?

4985 次点击
所在节点    NGINX
30 条回复
unoxunoy
2020-04-25 12:43:47 +08:00
用 ps 查询 nginx 的 pid 号,再将 pid 号写到提示的.pid 文件中;或者查到 pid 号后直接 kill
BrettD
2020-04-25 12:47:23 +08:00
字面意思是从 /var/run/nginx.pid 这个文件读取 nginx 的 PID 读到的是空白的
dot2017
2020-04-25 12:48:00 +08:00
我一般直接 killall nginx……
airyland
2020-04-25 12:48:36 +08:00
善用搜索引擎
endlesslove
2020-04-25 13:07:17 +08:00
@unoxunoy vi /var/run/nginx.pid 这个文件改如何写,我查询到 15480
gesse
2020-04-25 13:10:51 +08:00
你是不是系统里有多个 nginx ?
Guys
2020-04-25 13:10:57 +08:00
@endlesslove pid 文件是记录 nginx 启动的进程号的,你查到进程号了,只须 kill -9 15480
gesse
2020-04-25 13:11:54 +08:00
package manager(如 apt-get install) 安装里一个, 又用编译等方法安装了一个?
endlesslove
2020-04-25 13:14:14 +08:00
@gesse 我没有编译安装过,只有 apt-get install 一个
endlesslove
2020-04-25 13:34:15 +08:00
ps -ax | grep nginx

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

是否是这两个东西重叠了,请教大家帮助!
WuMengDi
2020-04-25 13:46:13 +08:00
1,两个 nginx 冲突了,
WuMengDi
2020-04-25 13:46:24 +08:00
@WuMengDi 2,nginx 压根就没起来
endlesslove
2020-04-25 17:00:42 +08:00
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

[Service]
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
2020-04-25 17:02:16 +08:00
@endlesslove 我有个小白问题啊。。为啥不用 systemctl stop nginx 来停止呢?
endlesslove
2020-04-25 17:26:53 +08:00
@PbCopy111 nginx -s quit nginx: [error] invalid PID number "" in "/var/run/nginx.pid" 返回的就是这样!
endlesslove
2020-04-25 17:28:11 +08:00
ps -ef | grep nginx
显示依然在运行,不解,新手需要帮助
sss495088732
2020-04-25 17:38:57 +08:00
直接 kill 掉....我之前不知不觉起了十几个.
win 平台
movieatravelove
2020-04-25 17:51:24 +08:00
kill -9 pid 就完事了
0312birdzhang
2020-04-25 18:05:49 +08:00
1 楼正解。
也不知道是 nginx 的 bug 还是被误删了,ps 查到 pid 再 echo 到那个文件里就可以了。
PbCopy111
2020-04-25 18:14:56 +08:00
```
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```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/665936

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX