簡體   English   中英

如何殺死 node.js 上的打開進程?

[英]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

在 Node.js 中:

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

die('Process quit');

有某些用於退出的方法僅適用於 POSIX(即不是 Windows),它們將通過進程 ID 退出進程。

另請注意,您可能能夠使用此方法發送 kill() 信號,但這並不表示它不適用於 Windows:

process.kill(pid, [signal])

如果你想殺死所有進程而不是:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM