簡體   English   中英

重啟nginx:nginxnginx:[emerg] bind()到0.0.0.0:80失敗(98:地址已經在使用中)

[英]Restarting nginx: nginxnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

當我嘗試使用sudo /etc/init.d/nginx restart重新啟動nginx時,我收到了來自主題的消息。

我發現原因很可能是腳本不知道如何停止守護程序,因為pid文件(/var/run/nginx.pid)不是在啟動時創建的。

我在兩個不同的服務器上安裝了兩個...一個是從源代碼編譯的,另一個是由phusion乘客編寫的。

我試過這個命令:

start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid --exec /usr/sbin/nginx -- -c /etc/nginx/nginx.conf

在兩台機器上和一台機器上創建了pid文件而在另一台機器上它不是 - 在那台機器上路徑有點不同(但我不認為這是相關的):

start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid --exec /opt/nginx/sbin/nginx -- -c /opt/nginx/conf/nginx.conf

流程開始,pid沒有寫...

我在Debian上...

有什么建議?

解決方案是在nginx.conf中取消注釋這一行:

pid        /var/run/nginx.pid;

看起來不同的安裝方式不同,但正確的方法是取消注釋。

我能夠通過運行以下fuser命令來解決這個問題

$ sudo fuser -k 80 / tcp

這會殺死使用端口80的任何進程。但是他沒有搞任何其他東西。

這歸功於: https//goo.gl/6oc0xD

$ sudo nginx -t 

要查看所有進程,有時您沒有完全權限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM