如何杀死node.js上的开放进程?

时间:2012-06-30 17:43:34

标签: windows node.js windows-xp kill-process

我正在尝试在sublime上为Node.js建立一个构建系统,所以我可以按F7在打开的文件上调用“node”。问题是这个过程会永远打开,所以,第二次使用F7我会得到一个加载项。

有没有办法可以从node.js中删除打开的“node.exe”进程?

5 个答案:

答案 0 :(得分:36)

使用以下命令集来标识在给定端口上运行的进程并从命令行终止该进程

   sudo fuser -v 5000/tcp // gives you the process running on port 5000

它将输出类似于下面显示的详细信息

                        USER        PID ACCESS COMMAND
   5000/tcp:            almypal     20834 F.... node

然后使用

   sudo fuser -vk 5000/tcp

终止进程。使用

再次检查
   sudo fuser -v 5000/tcp

确保流程已终止。

在Windows上,您可以使用以下步骤

  C:\> tasklist // will show the list of running process'

  Image Name        PID Session Name    Session#    Mem Usage
  System            4   console                 0   236 K
  ...
  node.exe         3592 console                0    8440 k

请注意与您的节点进程相对应的PID,在本例中为3592.接下来运行taskkill以终止进程。

  C:\> taskkill /F /PID 3592

或/ IM开关

  C:\> taskkill /F /IM node.exe

答案 1 :(得分:3)

在Node.js中:

var die = function(quitMsg)
{
    console.error(quitMsg)
    process.exit(1);
} 

die('Process quit');

退出的某些methods available仅适用于POSIX(即非Windows),它将按进程ID退出进程。

另外,请注意您可以使用此方法发送kill()信号,但这并不表示它不适用于Windows:

process.kill(pid, [signal])

答案 2 :(得分:0)

如果sublime你说的是sublimeText插件,我有同样的问题,并从python代码向TCP服务器发送消息'shutdown',然后

<强> app.js

 TCPserver
        .on('connection', function(socket)
        {
            socket.pipe(require('through')
                (function(data)
                { //----------------------------
                    if (data.toString() === 'shutdown')
                    {
                        process.exit();
                    }
                    //--------------------------
                }));
            socket.end();
        })

答案 3 :(得分:0)

与@Alex W所说的相似,只要您拥有其进程ID或使用以下节点函数的PID,就可以向进程发送一个终止信号:

process.kill(pid, [signal])

在我的情况下,我在产生child_process().spawn.pid时随时可以获得PID。我测试了它,它确实适用于Win 7 x64。

答案 4 :(得分:0)

如果您想杀死所有比

sudo killall -9 node

如果您要终止所选端口上的进程,则

sudo kill `sudo lsof -t -i:3100 

这里3100是端口