我正在尝试创建一个使用SSL的nodejs应用程序。我已经配置了cert,domain和nodejs并且工作正常,但是当我使用Ctrl + C停止节点服务器时,我遇到了问题。尝试重新启动节点服务器时出现以下错误:
Error: listen EADDRINUSE :::443
at Object.exports._errnoException (util.js:870:11)
at exports._exceptionWithHostPort (util.js:893:20)
at Server._listen2 (net.js:1237:14)
at listen (net.js:1273:10)
at Server.listen (net.js:1369:5)
at Object.<anonymous> (/var/www/html/server.js:212:47)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
现在我知道这意味着该端口正在使用中,但我已经尝试了几个方法来查找使用该端口的进程,但我不能。我尝试过的一些值得一提的是netstat:
$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1164/sshd
tcp6 0 0 :::22 :::* LISTEN 1164/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 882/dhclient
和ps:
$ ps aux |grep node
ubuntu 7632 0.0 0.0 12944 988 pts/0 S+ 23:30 0:00 grep --color=auto node
但它们都没有显示我使用的是端口443.我有pm2来保持我的节点服务器处于运行状态,但它一直说errored
然后我在pm2错误日志中找到了EADDRINUSE错误。我一直在撞墙几个小时。任何人都可以帮我吗?谢谢!
答案 0 :(得分:2)
我遇到了这个问题,并且唯一显示该过程的命令是
sudo lsof -iTCP -sTCP:LISTEN -P