重啟nginx時nginx.pid檔案遺失怎麼辦
一、nginx的停止操作
(推薦教學:nginx教學)
停止操作是透過向nginx進程發送訊號來實現的,具體錯誤訊息如下:
[root@yoodb.com ~]# /usr/local/nginx/sbin/nginx -s reload nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
步驟1:
查詢nginx主進程號,程式碼如下:
ps -ef | grep nginx
在進程列表裡面找master進程,它的編號就是主進程號了。
步驟2:
傳送訊號,從容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
強制停止Nginx,程式碼如下:
pkill -9 nginx
另外, 若在nginx.conf配置了pid檔案存放路徑則該檔案存放的就是Nginx主進程號,如果沒指定則放在nginx的logs目錄下。有了pid文件,就不用先查詢Nginx的主進程號,而直接向Nginx發送信號了,命令代碼如下:
kill -信号类型 ‘/usr/nginx/logs/nginx.pid’
二、nginx的平滑重啟
#如果更改了配置可以向Nginx發送訊號,平滑重啟。
平滑重啟命令程式碼如下:
kill -HUP 住进称号或进程号文件路径
或使用
/usr/nginx/sbin/nginx -s reload
注意,修改了設定檔後最好先檢查一下修改過的設定檔是否正確,以免重啟後Nginx出現錯誤影響伺服器穩定運作。判斷Nginx配置是否正確命令程式碼如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或
/usr/nginx/sbin/nginx -t
三、nginx的平滑升級
如果伺服器正在執行的Nginx要進行升級、新增或刪除模組時,我們需要停掉伺服器並做相應修改,這樣伺服器就要在一段時間內停止服務,Nginx可以在不停機的情況下進行各種升級動作而不影響伺服器運作。
步驟1:
若升級Nginx程序,先用新程式取代舊程式文件,編譯安裝的話新程式直接編譯到Nginx安裝目錄。
步驟2:執行指令
kill -USR2 旧版程序的主进程号或进程文件名
此時舊的Nginx主程序將會將自己的行程檔改名為.oldbin,然後再執行新版 Nginx。新舊Nginx會同市運行,共同處理請求。
這時要逐步停止舊版Nginx,輸入指令:
kill -WINCH 旧版主进程号
慢慢舊的工作進程就都會隨著任務執行完畢而退出,新版的Nginx的工作進程會逐漸取代舊版工作進程。
可以決定使用新版本還是恢復到舊版。
四、不重載配置啟動新/舊工作進程
kill -HUP 旧/新版主进程号
從容關閉舊/新進程
kill -QUIT 旧/新主进程号
如果此時報錯,提示還有進程沒有結束就用下面命令先關閉舊/新工作進程,再關閉主進程號:
kill -TERM 旧/新工作进程号
注意在阿里雲伺服器上,進程性的nginx -s stop後再次啟動nginx -s reload ,總是會報錯誤
nginx: [error] open() “/alidata/server/nginx/logs/nginx.pid” failed (2: No such file or directory)
原因:nginx進程殺死後pid丟失了,下一次再開啟nginx -s reload時無法啟動,重裝可以解決問題。也可以參考英文的解釋:
issued a nginx -s stop and after that I got this error when trying to reload it. [error]: invalid PID number “” in “/var/run/nginx.pid” That /var/run/nginx/pid file is empty atm. What do I need to do to fix it? nginx -s reload is only used to tell a running nginx process to reload its config. After a stop, you don’t have a running nginx process to send a signal to. Just run nginx (possibly with a -c /path/to/config/file)
使用方法,程式碼如下:
nginx -c /path/to/config/file
Linux系統執行指令如下:
##
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
以上是重啟nginx時nginx.pid檔案遺失怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

要讓 Tomcat 伺服器對外網訪問,需要:修改 Tomcat 設定文件,允許外部連接。新增防火牆規則,允許存取 Tomcat 伺服器連接埠。建立 DNS 記錄,將網域名稱指向 Tomcat 伺服器公有 IP。可選:使用反向代理提升安全性和效能。可選:設定 HTTPS 以提高安全性。

ThinkPHP Framework 的本機運作步驟:下載並解壓縮 ThinkPHP Framework 到本機目錄。建立虛擬主機(可選),指向 ThinkPHP 根目錄。配置資料庫連線參數。啟動 Web 伺服器。初始化 ThinkPHP 應用程式。存取 ThinkPHP 應用程式 URL 運行。

要解決"Welcome to nginx!" 錯誤,需要檢查虛擬主機配置,啟用虛擬主機,重新加載Nginx,如果無法找到虛擬主機配置文件,則創建預設頁面並重新加載Nginx,這樣錯誤訊息將消失,網站將正常顯示。

若要將 HTML 檔案轉換為網址,需要使用網頁伺服器,包括以下步驟:取得網頁伺服器。設定網路伺服器。上傳 HTML 文件。建立域名。路由請求。

Node.js 專案的伺服器部署步驟:準備部署環境:取得伺服器存取權限、安裝 Node.js、設定 Git 儲存庫。建置應用程式:使用 npm run build 產生可部署程式碼和相依性。上傳程式碼到伺服器:透過 Git 或檔案傳輸協定。安裝依賴項:SSH 登入伺服器並使用 npm install 安裝應用程式相依性。啟動應用程式:使用 node index.js 等命令啟動應用程序,或使用 pm2 等進程管理器。設定反向代理(可選):使用 Nginx 或 Apache 等反向代理路由流量到應用程式

是的,Node.js 可以外網存取。您可以使用下列方法:使用 Cloud Functions 部署函數並公開存取。使用 Express 框架建立路由並定義端點。使用 Nginx 反向代理請求到 Node.js 應用程式。使用 Docker 容器運行 Node.js 應用程式並透過連接埠映射公開。

要成功部署和維護PHP網站,需要執行以下步驟:選擇Web伺服器(如Apache或Nginx)安裝PHP建立資料庫並連接PHP上傳程式碼到伺服器設定網域名稱和DNS監控網站維護步驟包括更新PHP和Web伺服器、備份網站、監控錯誤日誌和更新內容。

Linux管理員的一個重要任務是保護伺服器免受非法攻擊或存取。預設情況下,Linux系統附有配置良好的防火牆,例如iptables、UncomplicatedFirewall(UFW),ConfigServerSecurityFirewall(CSF)等,可防止多種攻擊。任何連接到網路的機器都是惡意攻擊的潛在目標。有一個名為Fail2Ban的工具可用來緩解伺服器上的非法存取。什麼是Fail2Ban? Fail2Ban[1]是一款入侵防禦軟體,可保護伺服器免受暴力攻擊。它是用Python程式語
