web-dev-qa-db-fra.com

Comment tuer un processus ouvert sur node.js?

J'essaie de mettre en place un système de construction pour Node.js sur sublime, afin que je puisse appuyer sur F7 pour appeler "node" sur le fichier ouvert. Le problème est que le processus est ensuite ouvert pour toujours, donc, la deuxième fois que j'utilise F7, je reçois un complément. 

Existe-t-il un moyen de supprimer le processus "node.exe" de node.js?

19
MaiaVictor

Utilisez le jeu de commandes suivant pour identifier le processus en cours d'exécution sur un port donné et le résilier à partir de la ligne de commande.

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

Il affichera des détails similaires à ceux présentés ci-dessous.

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

Puis utiliser

   Sudo fuser -vk 5000/tcp

mettre fin au processus. Vérifiez encore une fois en utilisant

   Sudo fuser -v 5000/tcp

pour s'assurer que le processus est terminé.

Sous Windows, vous pouvez utiliser les étapes suivantes

  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

Notez le PID correspondant à votre processus de noeud, dans ce cas 3592. Exécutez ensuite taskkill pour mettre fin au processus.

  C:\> taskkill /F /PID 3592

Commutateur Or/IM

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

Depuis Node.js:

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

die('Process quit');

Certaines méthodes disponibles pour la sortie ne sont disponibles que pour POSIX (c'est-à-dire pas Windows) qui quitteront un processus par son ID de processus.

Notez également que vous pourrez peut-être envoyer un signal kill () à l'aide de cette méthode, qui ne dit pas qu'il n'est pas disponible pour Windows:

process.kill(pid, [signal])
3
Alex W

Si sublime vous dites qu'il est un plugin sublimeText, j'ai le même problème et envoie à TCP un message «shutdown» à partir du code python du serveur, puis

app.js

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