我正在尝试在sublime上为Node.js建立一个构建系统,所以我可以按F7在打开的文件上调用“node”。问题是这个过程会永远打开,所以,第二次使用F7我会得到一个加载项。
有没有办法可以从node.js中删除打开的“node.exe”进程?
答案 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是端口