Node.jsのビルドシステムを崇高にセットアップしようとしているので、F7キーを押して開いたファイルの「ノード」を呼び出すことができます。問題は、プロセスが永久に開いていることです。そのため、2回目にF7を使用すると、アドインが使用されます。
開いた「node.exe」プロセスをnode.jsから強制終了する方法はありますか?
Node.jsのビルドシステムを崇高にセットアップしようとしているので、F7キーを押して開いたファイルの「ノード」を呼び出すことができます。問題は、プロセスが永久に開いていることです。そのため、2回目にF7を使用すると、アドインが使用されます。
開いた「node.exe」プロセスをnode.jsから強制終了する方法はありますか?
次の一連のコマンドを使用して、特定のポートで実行されているプロセスを識別し、コマンドラインから終了します。
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
Node.js内から:
var die = function(quitMsg)
{
console.error(quitMsg)
process.exit(1);
}
die('Process quit');
プロセスIDによってプロセスを終了するPOSIX(つまり、Windowsではない)でのみ使用可能な終了に使用できる特定のメソッドがあります。
また、このメソッドを使用してkill()シグナルを送信できる場合があることに注意してください。これは、Windowsで使用できないことを示しているわけではありません。
process.kill(pid, [signal])
以下よりもすべてのプロセスを強制終了する場合:
sudo killall -9 node
選択したポートでプロセスを強制終了する場合:
sudo kill sudo lsof -t -i:3100
それはポートでした3100
あなたが言う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();
})
@Alex Wが言ったことと同様に、プロセスID、または次のノード関数を使用したPIDがあれば、プロセスにkillシグナルを送信できます。
process.kill(pid, [signal])
私の場合、スポーン時にPIDをすぐに利用できましたchild_process().spawn.pid
。私はそれをテストしました、そしてそれはWin7x64で動作します。