Подтвердить что ты не робот

Как убить открытый процесс на node.js?

Я пытаюсь настроить систему сборки для Node.js на sublime, поэтому я могу нажать F7, чтобы вызвать "node" в открытом файле. Проблема в том, что процесс затем открывается навсегда, поэтому во второй раз, когда я использую F7, я получаю надбавку.

Есть ли способ убить открытый < node.exe "процесс из Node.js?

4b9b3361

Ответ 1

Используйте следующий набор команд для идентификации процесса, выполняющегося на данном порту, и для его завершения из командной строки

   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, соответствующий вашему процессу node, в этом случае 3592. Далее запустите taskkill, чтобы завершить процесс.

  C:\> taskkill /F /PID 3592

Очередь/IM-переключатель

  C:\> taskkill /F /IM node.exe

Ответ 2

Из Node.js:

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

die('Process quit');

Существуют определенные методы, доступные для выхода, которые доступны только для POSIX (то есть не для Windows), которые выйдут из процесса по его идентификатору процесса.

Также обратите внимание, что вы можете отправить сигнал kill() с помощью этого метода, который не говорит, что он недоступен для Windows:

process.kill(pid, [signal])

Ответ 3

Если возвышенность, которую вы говорите, является плагином sublimeText, у меня такая же проблема и отправьте TCP-сервер сообщение "shutdown" из кода python, затем

app.js

 TCPserver
        .on('connection', function(socket)
        {
            socket.pipe(require('through')
                (function(data)
                { //----------------------------
                    if (data.toString() === 'shutdown')
                    {
                        process.exit();
                    }
                    //--------------------------
                }));
            socket.end();
        })

Ответ 4

Аналогично тому, что сказал @Alex W, вы можете отправить сигнал уничтожения процессу до тех пор, пока у вас есть его идентификатор процесса или PID, используя следующую функцию node:

process.kill(pid, [signal])

В моем случае у меня были доступные PID, так как я был нерестом child_process().spawn.pid. Я тестировал его, и он работает на Win 7 x64.