Windows下nginx报错解决:CreateFile() "xxx/logs/nginx.pid" failed
写在前面
本文给出Windows下nginx报错:CreateFile() "xxx/logs/nginx.pid" failed 的解决方法并分析了出错原因,其中 xxx 表示nginx的安装路径(即nginx.exe所在的路径)。注意,除非特别说明,否则后文一律使用 xxx 来表示nginx的安装目录。想直奔重点的读者请直接跳至解决小节,想了解原理的读者可以参考分析和验证小节。
正文
现象
在Windows下,当我们执行 nginx -s stop 或 nginx -s quit 或 nginx -s reload 时,可能会收到如下报错:
nginx: [error] CreateFile() "D:/software/nginx/logs/nginx.pid" failed (2: The system cannot find the file specified)
分析
当我们使用 start nginx 来启动nginx时,会在 xxx/logs/ 目录下生成名为 nginx.pid 的文本文件,该文件的内容只有一个数字,即nginx.exe进程对应的PID。无论是stop,quit还是reload,都需要利用nginx.exe的PID对其进行操作。然而,在某些特殊情况下(下文中我们会人为制造一种特殊情况),nginx.pid会丢失,故而上述三个命令会因找不到nginx.pid而报错。显然,此时也不可能stop,quit或reload成功,因为nginx连自己对应哪个进程都不知道。
解决
简单粗暴:1)通过 tasklist | findstr "nginx.exe" 查出nginx.exe对应的PID;2)在 xxx/logs/ 下新建文本文件 nginx.pid ,通过文本编辑器将上一步的PID写入(当然,这一步也可以通过命令行、脚本、动手编程等一切能达到目的的方式进行);3)执行 nginx -s stop 或 nginx -s quit 或 nginx -s reload 。
验证
【必读】
- 本验证中,nginx安装路径为 D:/software/nginx ,监听端口为5000。
- 呈现方式是命令行截图。用到的命令会在后边以文本形式给出,方便读者复制粘贴。
- 本文仅重点关注“找不到nginx.pid”的问题,对于验证过程中衍生的其它问题,本文仅给出答案的链接,且不保证对症下药(不是说文档内容有误,而是不保证正好能解决对应的问题)。在此也恳请知道答案的读者不吝赐教。
- 验证过程中的命令必须在nginx安装目录下执行,否则会出错。如果非要在任意目录下执行,请参考在下的另一篇博客,同时,也要记着对相关路径做相应改动。
验证过程如下图所示:

验证过程
其中,用到的命令整理如下:

1 start nginx
2 tasklist | findstr "nginx.exe"
3 netstat -ano | findstr "5000" # 需要将5000改为nginx实际监听的端口
4 type ./logs/nginx.pid
5 nginx -s quit
6 cmd /r dir /b .\\logs
7 13632 | Out-File -Encoding ASCII ./logs/nginx.pid # 需要将13632改为实际的PID
上图中提到的参考文档为[1]、[2]、[3]。这里对文档的作者表示衷心的敬佩与感谢。
写在后面
再次感谢本文引用的所有文档的读者。
在下刚接触nginx,本文为在下探索所得,错误疏漏之处在所难免,欢迎读者批评指正,您的批评是在下前进的不竭动力。
Windows下nginx报错解决:CreateFile() "xxx/logs/nginx.pid" failed的更多相关文章
- 【转载】struts应用在断网情况下启动报错解决办法(java/net/AbstractPlainSocketImpl.java:178:-1)
无意间struts应用在有网络的情况下启动正常,在断网的情况下启动报错,报错代码如下图所示: SEVERE: Exception starting filter struts2 Class: java ...
- windows下mongoengine报错False is not a read preference.的解决办法
mongoengine是基于pymongo的,后者的3.0版本在windows下似乎会有这个问题,解决方法就是降级: pip install pymongo==2.8 来源:upgrade to py ...
- openfl关于windows平台编译报错解决办法
报错信息: 无法打开程序数据库“e:\newproj\mainclient\bin\windows\cpp\obj\obj\msvc-debug-ncxp\vc.pdb”:如果要将多个 CL.EXE ...
- Tomcat启动报错java.net.AbstractPlainSocketImpl(java/net/AbstractPlainSocketImpl.java:178:-1)Struts在网络复杂情况下启动报错解决办法
SSH项目 在网络复杂的情况(具体规律未知)下,Tomcat启动时,报如下错误: [ERROR] 2014-08-12 14:52:58,484 [org.apache.struts2.dispatc ...
- windows下codeblocks报错undefined reference to `WSAStartup@8'|
Windows下C++Socket编程,调用WSAStartup函数报错:undefined reference to `WSAStartup@8'| 本人使用的是Codeblocks MinGW M ...
- nginx报错[error] CreateFile() "D:\Java-windows\nginx-1.16.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
无论是nginx -s stop还是nginx -s reload命令,都会出现这个错误. 解决方法:使用命令创建/logs/nginx.pid文件,命令如下所示: nginx -c conf/ngi ...
- Windows测试Hadoop报错解决
错误1:HADOOP_HOME and hadoop.home.dir are unset 原因:没有在Windows配置环境变量 解决办法:配置环境变量:记得配置到bin目录 错误2:Could n ...
- activemq在windows下启动报错,闪退问题
查验了网上各种方法,都没搞定,最后楼主决定按照linux的解决套路来,把windows计算机名称改为纯英文字母,原计算机名:lee_pc,修改后为leepc,然后重启电脑,再重新运行activemq. ...
- windows svn post-commit 报错解决 error resolving case
在svn仓库目录下有个hooks目录,下面建一个 post-commit.cmd 文件,有代码提交到仓库,自动checkout到指定目录. @echo onSET REPOS=%1SET USER ...
随机推荐
- Java之Spring基础与IoC
Spring About Spring 开源免费框架,轻量级,非入侵式框架.Spring就是一个轻量级的控制反转(IOC)和面向切片编程(AOP)的框架 Maven repo:Spring Web M ...
- 【软件工具】Git 使用总结
本地库就是由 对象 和 引用 构成的,或者叫 Repositories;下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 ...
- 综合练习——寻找有潜力的bilibili百大UP主(1)
寻找有潜力的bilibili百大UP主(1) 防喷说明:以下仅为个人学习之余的娱乐项目,本人不主动赋予以下内容任何价值,不确保内容的准确性 欢迎各位友善的指出错误 目录 寻找有潜力的bilibili百 ...
- 【开发工具】idea常用配置
1. 设置鼠标滚轮修改字体大小 我们可以勾选此设置后,增加Ctrl + 鼠标滚轮 快捷键来控制代码字体大小显示. 2. 设置鼠标悬浮提示 3. 设置自动导包功能 Add unambiguous im ...
- java输入字符
1.创建一个Scanner对象. 2.调用.next()返回一个String类型用一个变量接受. 3.调用该String变量的.charAt(0),获取第一个字符. Scanner scn=new S ...
- linux shell 脚本输入参数解析
文件名: test.sh #!/bin/bash para="para: "; while [ $# -ge 2 ] ; do case "$1" in --a ...
- 通俗易懂讲解Word2vec的本质
本文首发于微信公众号「对白的算法屋」,来一起学AI叭 一.Word2vec CBOW(Continuous Bag-of-Words):每个词的含义都由相邻词决定. Skip-gram:依据分布的相似 ...
- Echarts中Option属性设置
目录 一.title--标题组件 二.legend--图例组件 三.tooltip--提示框组件 四.grid--可用于调整图例在整个容器中的占位 五.xAxis--x 轴 六.yAxis-y 轴 七 ...
- aes加解密后续问题contentType不是application/json时候后台解析请求对象request
一.post请求的三种content-type 1.application/x-www-form-urlencoded 主要用于如下:1.1: 最常见的POST提交数据方式.1.2:原生form默认的 ...
- 海量列式非关系数据库HBase 架构,shell与API
HBase的特点: 海量存储: 底层基于HDFS存储海量数据 列式存储:HBase表的数据是基于列族进行存储的,一个列族包含若干列 极易扩展:底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加Da ...