[nginx启动,重载,停止时报错:nginx: [error] open() “/run/nginx.pid“ failed (2: No such file or directory)的解决办法]

看报错信息是打开/run/nginx.pid文件失败,没有这样的文件或者目录。。。。。

于是我就去/run目录下面找,真的没有。。。。。。。。

命令:cd /run

ls

既然它缺了,那我就创见一个不就好了。

命令:touch nginx.pid

创建了,里面填什么呢?这文件都是.pid应该就是它的线程ID吧,怎么查看Nginx线程ID呢?

命令:ps -ef | grep nginx

如果只有一个root标志

 那就进到Nginx的根目录下把Nginx启动。

命令:cd /usr/local/nginx/sbin

./nginx

 启动了就有俩个root标志的啦,记住后面带master这个的线程号。

然后vi nginx.pid,按i输入Nginx的ID号,按esc退出插入模式,输入:wq保存并退出就好啦。。。。。

然后就能重新加载啦。。。。完美收工。。。。。。

image-20211210165543760

2.还有就是每次关机启动run文件夹里面Nginx.pid文件都会被删掉,每次都需要创建么?那不是很麻烦。我们可以进到/usr/lib/systemd/system文件夹找到nginx.service文件,修改一下配置。

命令:cd /usr/lib/systemd/system

vi nginx.service

配置如下:

Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStartPost=/bin/sleep 0.1
ExecStart=/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

还有就是/usr/local/nginx/conf文件夹下的nginx.conf文件中pid那行的注释去掉,更改一下路径。

命令:cd /usr/local/nginx/conf

vi nginx.conf

改为:pid        /usr/local/nginx/logs/nginx.pid;

并在/usr/local/nginx下创建logs文件夹。

命令:cd /usr/local/nginx或者cd ..

mkdir logs

到此,配置完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值