在Mac上停止node.js进程

13

我有一个使用一些socket端口的node.js应用程序。有时,当我用Ctrl + C退出应用程序时,某种node进程仍在运行,仍在分配socket端口。因此,我无法重新启动我的应用程序,因为它无法打开这些端口。当我用ps查看情况时,会得到以下响应:

$ ps

PID TTY           TIME CMD

40454 ttys000    0:00.11 -bash

41643 ttys001    0:00.00 (node)

41741 ttys001    0:00.00 (node)

尝试使用kill -9 41643命令无法终止进程。这是一种无法终止的僵尸进程吗?我该如何摆脱那些阻塞我的tcp端口的(node)进程呢?

2个回答

40

虽然我不是MAC用户,但这里是我在Linux系统下用来终止所有可用的Node进程的方法:

sudo killall -9 node

22

在 macOS 上,它很简单:

sudo killall -9 node

大多数情况下,sudo 是不必要的,但在您的情况下,看起来您可能想尝试使用 sudo


为什么需要-9? - Caio Kawasaki
1
@CaioKawasaki 如果没有它,你将无法预先终止节点进程。相反,你让进程处理默认信号,这样他们有一定的机会在不实际自杀的情况下处理信号。而使用“-9”,你直接杀死进程,而不让它们知道。 - Sal Rahman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接