鍍金池/ 問答/Linux  網(wǎng)絡(luò)安全  HTML/ PM2啟動(dòng)node服務(wù)一直報(bào)端口被占用,換了好幾次端口也沒用?

PM2啟動(dòng)node服務(wù)一直報(bào)端口被占用,換了好幾次端口也沒用?

最近在測(cè)試服務(wù)器上出現(xiàn)的問題,之前一直沒有(用的vue+node轉(zhuǎn)發(fā))。

**

1.發(fā)現(xiàn)問題

**

測(cè)試姐姐要測(cè)試時(shí)能打開登錄界面,但是輸入賬號(hào)密碼點(diǎn)擊登錄沒反應(yīng)。我一看輸出,發(fā)現(xiàn)服務(wù)器報(bào)錯(cuò)了。

**

2.查找問題

**

于是我用 pm2 list 查看了下進(jìn)程

clipboard.png

我又查看了下日志
**輸出日志:**

clipboard.png

**錯(cuò)誤日志**

clipboard.png

  發(fā)現(xiàn)是端口占用,雖然很疑惑為什么突然會(huì)出現(xiàn)這種問題,
  但是當(dāng)務(wù)之急還是先解決問題。于是我連著換了好幾次端口,也用 pm2
  結(jié)束或重啟 服務(wù),但每次結(jié)果都是和一開始一樣。
  因?yàn)檫@個(gè)服務(wù)器上還有node的其他子程序是其他項(xiàng)目在用,
  也不敢隨便就把node直接干掉,但是用kill -9 [pid] 又殺不死,
  搜了百度,弄了很長(zhǎng)時(shí)間,現(xiàn)在問題急著解決,求助于社區(qū)的各位大佬了,
  感激不盡
回答
編輯回答
凹凸曼

lsof -i: 端口號(hào)看看

2018年8月8日 12:00
編輯回答
鐧簞噯

首先不要亂打標(biāo)簽,你的問題跟 nginx 有什么關(guān)系?

我猜測(cè)你的問題是 pm2 的 fork 模式造成的,因?yàn)?fork 模式不支持 端口復(fù)用,而如果你開多進(jìn)程的話就會(huì)造成這個(gè)問題。把 fork 改為 cluster 試下

此外呢,kill 命令 不能指定端口,而是進(jìn)程id(pid),如 kill 1234
查看端口占用情況可以使用: ss -lntp | grep <port>,其中 <port> 是你要看的 端口

2017年10月25日 00:35