Я пытаюсь настроить систему сборки для Node.js на возвышенном, поэтому я могу нажать F7, чтобы вызвать "узел" в открытом файле. Проблема в том, что процесс затем открыт навсегда, поэтому при втором использовании F7 я получаю надстройку.
Есть ли способ убить открытый процесс "node.exe" из node.js?
Возможный дубликат остановить все экземпляры сервера node.js rofrol 28.11.2015
Используйте следующий набор команд, чтобы определить процесс, работающий на данном порту, и завершить его из командной строки.
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
Ответ 2 · рейтинг 3 · Alex W
Изнутри Node.js:
var die = function(quitMsg)
{
console.error(quitMsg)
process.exit(1);
}
die('Process quit');
Существуют определенные методы для выхода, доступные только для POSIX (т.е. не для Windows), которые выйдет из процесса по его идентификатору процесса.
Кроме того, обратите внимание, что вы можете отправить сигнал kill(), используя этот метод, который не говорит, что он недоступен для Windows:
process.kill(pid, [signal])
Ответ 3 · рейтинг 3 · Renish Gotecha
Если вы хотите убить все процессы, чем:
sudo killall -9 node
Если вы хотите убить процесс на выбранном порту, чем:
sudo kill sudo lsof -t -i:3100
Это был порт 3100
Ответ 4 · Community
Если возвышенное вы говорите, это плагин sublimeText, у меня такая же проблема, и я отправляю TCP-серверу сообщение "закрытие" из кода Python, затем
Аналогично тому, что сказал @Alex W, вы можете отправить сигнал уничтожения процессу, если у вас есть его идентификатор процесса или PID, используя следующую функцию узла:
process.kill(pid, [signal])
В моем случае у меня были легко доступные PID, когда я создавал child_process().spawn.pid. Я протестировал его, и он работает на Win 7 x64.