你的开发服务器和打开的端口,按项目列出。

Vitals按进程启动时所在的项目文件夹对正在运行的内容分组,并显示每个项目占用的端口。它会指出从周二起就什么都没做的开发服务器,并提出帮你停止它;你不确认,什么都不会停止。

项目 5个开发服务器 · 4个闲置
4322
storefront-web
node · 已运行3天,几乎未使用
458 MB 停止…
8000
scraper-api
python · 已运行4天,几乎未使用
412 MB 停止…
4321
marketing-site
node · 闲置2小时
296 MB 停止…
3000
billing-api
node · 闲置45分钟
204 MB 停止…
5173
docs
node
188 MB 工作中
storefront-web已停止。 458 MB和端口4322已释放。

这些数字是模拟的:网页读取不了你的Mac,也不应该读取。

01项目

按运行所在的文件夹分组,而不是按命令。

从同一个项目文件夹启动的所有内容是一行,以文件夹命名,显示全部内容的内存和CPU以及它监听的每个端口,于是三个都叫node的进程就变成了storefront、api和docs。

  • 每个项目一行,以文件夹命名
  • 项目中的进程,各自显示内存和CPU
  • 每个监听端口,紧挨着占用它的进程
  • Compose容器也归在所属项目下
storefront1.8 GB · 41%
next dev:3000412 MB
postgres:5432 · 容器1.4 GB
api96 MB · 0%闲置3天停止
uvicorn:808096 MB
docs210 MB · 2%
astro dev:4321210 MB
按文件夹命名 每个端口都显示在其进程旁
02端口

端口3000上是什么,不用开终端。

那个“已被占用”的端口在Vitals里有名有姓:占用它的进程、所属的项目,以及一个“停止”按钮。按⌘F输入端口号就行,不用lsof,也不用kill。

  • 端口紧挨着占用它的进程
  • 按⌘F输入数字就能找到
  • 是谁的:你的、数据库的,还是某个App的帮助程序
  • 助手可以通过MCP来问
3000⌘F
:3000next devstorefront你的停止
:5432postgresstorefront容器
:7000ControlCentermacOS系统的
端口、进程、项目 属于谁
03空闲

你忘了的服务器,连同闲置多久一起指出。

什么都没做好几天的开发服务器会带一条说明,写明闲置了多久,并提出帮你停止它,同时告诉你能释放多少资源。你不确认,什么都不会停止;你也可以一次退出整个项目。

  • 闲置多天的会被指出
  • 提出帮你停止,并说明能释放多少
  • 一次退出整个项目
  • 遇到不响应的,还有“强制退出”
要停止api吗?
:8080上的uvicorn已经3天没有任何活动。停止它可释放96 MB。
保留停止
闲置多天的会被指出 你不同意,什么都不会停止
04下拉面板

在菜单栏里找端口、停服务器。

下拉面板里有同样的“项目”标签页,显示同样的项目和端口,所以通常点两下就能解决,根本不用打开窗口。

  • 下拉面板里有同样的项目和端口
  • 在那里就能停止,确认后执行
  • 什么都不会自己停止
  • 在你信任的文件夹中,助手发来的安全请求会直接通过
概览内存项目代理容器
storefrontnext dev:3000停止
apiuvicorn:8080闲置3天停止
docsastro dev:4321停止
菜单栏中点一下即可 确认后停止
为什么重要

开发服务器与端口:之前与之后

每个项目都会留下一些在运行的东西。周二的开发服务器、你忘了是在本地跑的数据库、已关闭标签页里的测试监视器。在活动监视器中,它们是十几行叫node和python的进程,而且完全不显示每个进程占用的端口;要查端口,你得打开终端,输入lsof -i :3000,再kill掉一个进程号。

于是端口3000上的第二个项目启动失败,Mac莫名发热,解决办法只能靠猜。

“项目”标签页按进程运行所在的项目文件夹分组,以文件夹命名,显示全部进程的内存和CPU以及它们监听的每个端口。什么都没做好几天的开发服务器会被指出,写明闲置了多久,并提出帮你停止。可以一次退出整个项目,也可以强制退出一个不响应的进程;你不确认,什么都不会停止。从该文件夹用docker compose启动的容器也会显示在项目下,助手还能问某个端口上是什么。

使用方法

在Vitals中的位置

标签页、菜单栏项和设置,按你会用到的顺序排列。

  1. 01

    打开“项目”标签页

    每个项目是一行,以文件夹命名,显示其中的进程、它们的端口,以及全部进程的内存和CPU。打开一个项目,就能看到每个进程及其监听端口。

  2. 02

    找出某个端口上是什么

    端口紧挨着占用它的进程。按⌘F输入端口号,就会显示背后的项目和进程。

  3. 03

    停止被遗忘的那个

    什么都没做好几天的服务器会带一条说明,写明闲置了多久。可以停止它、退出整个项目,或强制退出一个不响应的进程。Vitals会先问你,并告诉你会关闭什么。

  4. 04

    通过你的助手询问

    通过MCP可以问:端口8080上是什么,哪些项目有开发服务器在跑。对你信任的项目文件夹,安全的请求可以不经询问直接退出;在“设置”→“集成”中添加该文件夹。

对比

开发服务器与端口:活动监视器与Vitals

完整对比会逐项列出。以下是与开发服务器与端口有关的几项。

活动监视器 Vitals
按项目
活动监视器否
Vitals按运行所在的文件夹分组
端口
活动监视器不显示;要在“终端”中用lsof
Vitals紧挨着占用它们的进程
闲置的服务器
活动监视器无
Vitals会被指出,并写明闲置了多久
停止
活动监视器按进程号kill
Vitals停止,或退出整个项目,确认后执行
容器
活动监视器仅进程
VitalsCompose容器排在所属项目下

背后的术语

这些数字是什么意思,摘自活动监视器术语表。

问题

购买前,大家关于开发服务器与端口最常问的问题。

Vitals怎么知道一个进程属于哪个项目?

看它是从哪个文件夹启动的。从同一个项目文件夹启动的进程会归在一起,以文件夹的名称命名。

Vitals会自己停止开发服务器吗?

不会。它会指出闲置多日的服务器,并提出帮你停止。你不确认,什么都不会停止。

它会显示不属于我的App占用的端口吗?

会。每个监听端口都会列出,并显示背后的进程,不管那是你的开发服务器、数据库,还是某个App的帮助程序。

它支持Docker吗?

容器有自己的标签页,显示各自的端口。从项目文件夹用docker compose启动的容器也会显示在该项目下。

什么算一个项目?

进程启动时所在的文件夹。从同一个文件夹启动的所有内容就是一个项目,以该文件夹命名。

可以一次退出整个项目吗?

可以。退出项目,确认后,其中的每个进程都会关闭。遇到不响应的进程,还有“强制退出”。

为什么我的端口提示已被占用?

有另一个进程在监听它,通常是之前留下的服务器。“项目”标签页会说出它是谁、属于哪个项目,并提出帮你停止它。

容器算项目的一部分吗?

从项目文件夹用docker compose启动的容器会显示在该项目下,也会显示在“容器”标签页中,带有自己的数据。

继续阅读

用到它的指南,以及Vitals与大家为此购买的App相比如何。

Vitals的更多功能

全部功能

趁首发价还在,以$15购买Vitals

此价位剩余50份。 常规价格为$39。一次付款,终身更新,14天内可退款。

购买Vitals $15