如何停止 node.js 服务器

Rah*_*hta 22 node.js

我通过键入运行节点服务器

node server.js
Run Code Online (Sandbox Code Playgroud)

从腻子终端让它运行。现在我想停止服务器我该怎么做?我试着按下键盘上的暂停按钮。但它并没有阻止它。

小智 14

尝试使用ctrl+c,通常可以解决问题。

  • 以编程方式,如果 `var app = require('http').createServer()` 则可以使用 `app.close()`。 (2认同)

小智 13

从另一个终端尝试

killall node

适用于 OS X 和 Linux。它还可能会阻止重新生成节点进程。例如,如果 anode some_server.js正在运行,它可能是任何正常kill命令(甚至kill -9 <PID_of_that_process>只会导致一个node some_server.js具有不同 PID的重新生成进程。在这种情况下,杀死它的唯一方法是:killall node。我在 Redhat Linux RHEL7 上解决了这个问题,但它应该可以工作对于大多数 Linux 操作系统也是如此。


小智 7

如果您打算使用 'top' 命令来终止一个进程,您应该先尝试发送 '2' 信号,而不是 '9'。发送“9”有点像拔掉计算机上的插头而不是发出关机命令。它有时会产生一些不良后果。发送 '2' 与ctrl+c.

作为参考,以下是您可以发送以停止进程的不同信号及其含义:(来自 kill 手册页)

 1       HUP (hang up)
 2       INT (interrupt)
 3       QUIT (quit)
 6       ABRT (abort)
 9       KILL (non-catchable, non-ignorable kill)
 14      ALRM (alarm clock)
 15      TERM (software termination signal)
Run Code Online (Sandbox Code Playgroud)


小智 5

在命令行输入“top”并找到您要杀死的进程的进程 ID。按'K',它会提示你输入你想杀死的进程ID,输入它,然后按回车。然后它会询问您要向进程传输什么信号,输入“9”并按回车键。该进程将被杀死。