【问题标题】:Where can I find the ports of all running pm2 apps?我在哪里可以找到所有正在运行的 pm2 应用程序的端口?
【发布时间】:2023-10-07 08:39:01
【问题描述】:

我有一台安装了 PM2 的服务器和 10 个正在运行的节点应用程序。每个应用程序都应该使用不同的端口号运行。当我在服务器上安装新应用程序时,我需要有关使用端口的信息。 使用“pm2 list”,我可以获得很多关于应用程序的信息,但没有关于端口的信息。

pm2 list

App name       │ id │ version │ mode │ pid   │ status │ restart │ uptime │ cpu  │ mem        │ user │ watching
example_name   │ 1  │ 0.0.0   │ fork │ 25651 │ online │ 0       │ 37D    │ 0%   │ 386.3 MB   │ root │ disabled

我找不到所有使用端口的概述,我不敢相信 PM2 没有提供这些重要信息。 有谁知道我在哪里看到 PM2 中所有已使用端口的列表?

【问题讨论】:

  • 请指导,您找到解决办法了吗?
  • 解决方案是移至 docker :) PM2 不再维护良好。

标签: node.js pm2


【解决方案1】:

嗨 Schmidko,即使我尝试了同样的方法,但我也没有在 pm2 中找到这样的选项 所以我目前正在从 pm2 l 获取 pid,然后使用以下命令在我的 linux 操作系统上获取端口

sudo netstat -ano -p tcp | grep <PID>

所以我得到这样的输出: tcp6 0 0 :::1111 :::* LISTEN 2111/app.js 关闭 (0.00/0/0)

其中 2111/app.js 是 PID & :::1111 是端口

(在此发表评论,因为我无权评论)

【讨论】:

  • 我解决了将端口号添加到应用程序名称的问题 :) 当服务器上运行 20 个应用程序时,您的解决方案有点复杂。但不赞成这种方法。 :)
  • 我也喜欢你的想法 :) 只是在等待 pm2 添加此功能可能在 pm2 show 命令上
【解决方案2】:

是的,这对于 pm2 恕我直言有点失败。仅当您在服务器上运行多个实例(站点)时。 我用:

ss -tnlp | grep "node /"

然后,您可以从 pm2 和端口中查看 pid,或者在我的情况下,您只获得它正在运行的目录的 sn-p。 更新:你可以使用这个怪物:

ss -ntlp | grep $(pm2 ls | grep "SITENAME" | awk '{print $10}') | awk '{print $4}'

这会将端口转储出去。

OP 添加了一条评论,说他将端口号添加到正在运行的节点应用程序的名称中,这可能会变得混乱,但这是个好主意。

【讨论】:

    最近更新 更多