23

Node.jsのビルドシステムを崇高にセットアップしようとしているので、F7キーを押して開いたファイルの「ノード」を呼び出すことができます。問題は、プロセスが永久に開いていることです。そのため、2回目にF7を使用すると、アドインが使用されます。

開いた「node.exe」プロセスをnode.jsから強制終了する方法はありますか?

4

5 に答える 5

45

次の一連のコマンドを使用して、特定のポートで実行されているプロセスを識別し、コマンドラインから終了します。

   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

ノードプロセス(この場合は3592)に対応するPIDをメモします。次にtaskkillを実行して、プロセスを終了します。

  C:\> taskkill /F /PID 3592

または/IMスイッチ

  C:\> taskkill /F /IM node.exe
于 2012-06-30T18:03:43.310 に答える
3

Node.js内から:

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

die('Process quit');

プロセスIDによってプロセスを終了するPOSIX(つまり、Windowsではない)でのみ使用可能な終了に使用できる特定のメソッドがあります。

また、このメソッドを使用してkill()シグナルを送信できる場合があることに注意してください。これは、Windowsで使用できないことを示しているわけではありません。

process.kill(pid, [signal])
于 2012-06-30T18:19:57.850 に答える
3

以下よりもすべてのプロセスを強制終了する場合:

sudo killall -9 node

選択したポートでプロセスを強制終了する場合:

sudo kill sudo lsof -t -i:3100 

それはポートでした3100

于 2019-04-03T09:51:58.300 に答える
0

あなたが言うsublimeがsublimeTextプラグインである場合、私は同じ問題を抱えており、TCPサーバーにPythonコードからのメッセージ「shutdown」を送信します。

app.js

 TCPserver
        .on('connection', function(socket)
        {
            socket.pipe(require('through')
                (function(data)
                { //----------------------------
                    if (data.toString() === 'shutdown')
                    {
                        process.exit();
                    }
                    //--------------------------
                }));
            socket.end();
        })
于 2013-08-08T07:16:50.797 に答える
0

@Alex Wが言ったことと同様に、プロセスID、または次のノード関数を使用したPIDがあれば、プロセスにkillシグナルを送信できます。

process.kill(pid, [signal])

私の場合、スポーン時にPIDをすぐに利用できましたchild_process().spawn.pid。私はそれをテストしました、そしてそれはWin7x64で動作します。

于 2016-03-23T13:30:58.313 に答える