如何找出哪个Node.js pid在哪个端口上运行

我想重新启动我在服务器上运行的许多Node.js进程之一.如果我运行ps ax | grep节点我得到了所有Node proccesses的列表,但它没有告诉我他们在哪个端口.如何杀死在端口3000上运行的那个(例如).管理多个Node进程的好方法是什么?

解决方法

如果您运行:

$netstat -anp 2> /dev/null | grep :3000

你应该看到类似的东西:

tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      5902/node

在这种情况下,5902是pid.你可以使用这样的东西来杀死它:

netstat -anp 2> /dev/null | grep :3000 | awk '{ print $7 }' | cut -d'/' -f1 | xargs kill

这是使用egrep的替代版本,可能会更好一点,因为它专门搜索字符串’node’:

netstat -anp 2> /dev/null | grep :3000 | egrep -o "[0-9]+/node" | cut -d'/' -f1 | xargs kill

您可以将上述内容转换为脚本或将以下内容放在〜/ .bashrc中:

function smackdown () {
  netstat -anp 2> /dev/null |
  grep :$@ |
  egrep -o "[0-9]+/node" |
  cut -d'/' -f1 |
  xargs kill;
}

现在你可以运行:

$smackdown 3000

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...