Jak zabić otwarty proces na węźle.js?

Próbuję skonfigurować build-system Dla Node.js na sublime, więc mogę nacisnąć F7, aby wywołać "węzeł" na otwartym pliku. Problem polega na tym, że proces jest otwarty na zawsze, więc za drugim razem, gdy używam F7, dostaję dodatek w użyciu.

Czy jest sposób na zabicie otwartego węzła".exe " proces z węzła.js?

Author: MaiaVictor, 2012-06-30

4 answers

Użyj następującego zestawu poleceń, aby zidentyfikować proces uruchomiony na danym porcie i określić go z linii poleceń

   sudo fuser -v 5000/tcp // gives you the process running on port 5000

Wyświetli szczegóły podobne do tego pokazanego poniżej

                        USER        PID ACCESS COMMAND
   5000/tcp:            almypal     20834 F.... node

Następnie użyj

   sudo fuser -vk 5000/tcp

Aby zakończyć proces. Sprawdź ponownie używając

   sudo fuser -v 5000/tcp

Aby upewnić się, że proces został zakończony.

W systemie Windows możesz użyć następujących kroków

  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

Zwróć uwagę na PID odpowiadający procesowi węzłowemu, w tym przypadku 3592. Następnie uruchom taskkill, aby zakończyć proces.

  C:\> taskkill /F /PID 3592

Lub /im switch

  C:\> taskkill /F /IM node.exe
 34
Author: almypal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-28 17:03:48

From within Node.js:

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

die('Process quit');

Istnieją pewne metody do wyjścia, które są dostępne tylko dla POSIX (tzn. nie dla Windows), które zakończą proces za pomocą swojego id procesu.

Zauważ również, że możesz być w stanie wysłać sygnał kill() za pomocą tej metody, która nie mówi, że nie jest dostępna dla Windows:

process.kill(pid, [signal])
 2
Author: Alex W,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-30 18:19:57

Jeśli mówisz, że sublime jest wtyczką sublimeText, to mam ten sam problem i wysyłam TCP serverowi wiadomość "shutdown" z kodu Pythona, to

App.js

 TCPserver
        .on('connection', function(socket)
        {
            socket.pipe(require('through')
                (function(data)
                { //----------------------------
                    if (data.toString() === 'shutdown')
                    {
                        process.exit();
                    }
                    //--------------------------
                }));
            socket.end();
        })
 0
Author: Ken OKABE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-08 07:16:50

Podobnie do tego, co powiedział @Alex W, możesz wysłać sygnał kill do procesu, o ile masz jego ID lub PID za pomocą następującej funkcji węzła:

process.kill(pid, [signal])

W moim przypadku, miałem PIDs łatwo dostępne, jak tarło child_process().spawn.pid. Przetestowałem go i działa na Win 7 x64.

 0
Author: daniel.caspers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-23 13:30:58