web-dev-qa-db-fra.com

Impossible de savoir où fonctionne une application node.js et de ne pas la tuer

Ce que j'ai fait: Je viens de configurer l'environnement de nœud, d'installer Express, de créer et d'installer un projet Express. 

express hello
cd hello && npm install

a ensuite lancé l'application avec "node app".

Environnement:

yole@Yole:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.2 (wheezy)
Release:    7.2
Codename:   wheezy

yole@Yole:~$ node --version
v0.10.22

yole@Yole:~$ express --version
3.4.4

Problème Lorsque je veux arrêter cette application, j’ai utilisé CTRL+C,, mais j’ai trouvé que c’est qu’elle n’a pas été arrêtée. Puis j'ai redémarré le serveur! J'ai trouvé que je pouvais toujours accéder à la page dans le navigateur. Orz.

J'ai essayé la chose suivante mais je ne peux toujours pas trouver le processus en cours.

yole@Yole:~$ killall node
node: no process found

yole@Yole:~$ ps -ef|grep node
yole      3161  2888  0 16:57 pts/1    00:00:00 grep node

yole@Yole:~$ netstat -apn|grep 3000

Question Comment connaître le processus de nœud en cours ou comment le tuer.

===== update Il est très étrange que tous les navigateurs de ma machine puissent visiter le site alors qu'il n'est pas disponible sur une autre machine! Je visite uniquement la page avec Chrome avant d’arrêter l’application. Cela semble être un problème de cache, mais comment le cache est-il partagé entre les navigateurs?.

17
yuyue007

Processus de noeud de liste:

$ ps -e|grep node

Tuer le processus en utilisant

$kill -9 XXXX

Ici XXXX est le numéro de processus

57
Damodaran

Si vous voulez savoir, les processus how may nodejs en cours d'exécution, vous pouvez utiliser cette commande

ps -aef | grep node

Donc, il donnera une liste de processus nodejs avec son nom de projet. Il sera utile lorsque vous exécutez une application multipe nodejs et que vous souhaitez supprimer un processus spécifique pour le projet spécifique.

La commande ci-dessus donnera la sortie comme

XXX  12886  1741  1 12:36 ?        00:00:05 /home/username/.nvm/versions/node/v9.2.0/bin/node --inspect-brk=43443 /node application running path.

Donc, pour tuer vous pouvez utiliser la commande suivante

kill -9 12886

Donc, il va tuer le processus de nœud spcefic

13
Bhaurao Birajdar

Vous pouvez tuer tous les processus de noeud à l'aide de pkill node

ou vous pouvez faire un ps T pour voir tous les processus sur ce terminal
alors vous pouvez tuer un ID de processus spécifique en utilisant un exemple kill [processID]: kill 24491

De plus, vous pouvez faire un ps -help pour voir toutes les options disponibles.

6
ConfusedDeer

Si toutes ces commandes de processus d'arrêt ne fonctionnent pas pour vous, ma suggestion est de vérifier si vous utilisiez d'autres packages pour exécuter votre processus de noeud.

J'avais un problème similaire, dû au fait que j'exécutais mon processus de noeud à l'aide de PM2 (un package NPM). La commande kill [processID] désactive le processus mais maintient le port occupé. Par conséquent, je devais aller dans PM2 et vider tout le processus de noeud pour libérer le port à nouveau. 

0
Gin