nginx: [error] CreateFile() “D:\nginx-1.20.1/logs/nginx.pid“ failed (2: The system cannot find the
下載解壓完nginx后,雙擊nginx.exe后訪問http://127.0.0.1/,能夠出現歡迎界面
但是在命令行關閉nginx服務時(nginx -s quit),報錯nginx: [error] CreateFile() “D:\nginx-1.20.1/logs/nginx.pid” failed
根據報錯信息來看,在nginx安裝目錄下的logs文件中找不到nginx.pid文件,去對應文件查看,發現確實沒有該文件
解決辦法:
在任務管理器強制關閉nginx進程,
然后再在命令行中重新用start nginx命令啟動,
現在發現在nginx安裝目錄下的logs文件中出現了nginx.pid文件,
再用命令nginx -s quit正常關閉nginx進程,
此時無法訪問http://127.0.0.1/,成功關閉nginx
原因分析:
nginx在啟動或重啟時要殺掉之前的nginx進程,就需要通過nginx.pid來找到原來的進程,而nginx.pid存儲的就是原來的進程id。沒有進程id系統就無法找到原來的nginx進程,自然就無法關閉了
之后測試無論是雙擊nginx.exe還是cmd命令啟動nginx,都會自動在logs文件下配置nginx.pid文件,均可正常關閉。不懂為啥第一次就不行呢?