![](/img/trans.png)
[英]Graceful kill off a detached node.js spawned child process in Windows
[英]How to kill an open process on node.js?
我正在嘗試在 sublime 上為 Node.js 設置一個構建系統,因此我可以按 F7 在打開的文件上調用“node”。 問題是該過程將永遠打開,因此,第二次使用 F7 時,我得到了一個加載項。
有沒有辦法可以從 node.js 中殺死打開的“node.exe”進程?
使用以下命令集識別在給定端口上運行的進程並從命令行終止它
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
如果你想殺死所有進程而不是:
sudo killall -9 node
如果您想在選定的端口上終止進程,請執行以下操作:
sudo kill sudo lsof -t -i:3100
那是端口3100
如果你說的 sublime 是 sublimeText 插件,我有同樣的問題,並從 python 代碼向 TCP 服務器發送消息“關閉”,然后
應用程序.js
TCPserver
.on('connection', function(socket)
{
socket.pipe(require('through')
(function(data)
{ //----------------------------
if (data.toString() === 'shutdown')
{
process.exit();
}
//--------------------------
}));
socket.end();
})
與@Alex W 所說的類似,只要您擁有進程 ID 或使用以下節點函數的 PID,您就可以向該進程發送終止信號:
process.kill(pid, [signal])
就我而言,當我child_process().spawn.pid
,我可以隨時使用 PID。 我已經對其進行了測試,它確實可以在 Win 7 x64 上運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.