it-swarm.com.de

Kann nicht herausfinden, wo eine node.js-App läuft und sie nicht beenden kann

Was ich getan habe: Ich habe gerade eine Knotenumgebung eingerichtet, express installiert, ein Expressprojekt erstellt und installiert 

express hello
cd hello && npm install

dann die App mit "node app" gestartet.

Umgebung:

[email protected]:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.2 (wheezy)
Release:    7.2
Codename:   wheezy

[email protected]:~$ node --version
v0.10.22

[email protected]:~$ express --version
3.4.4

Problem Wenn ich diese App beenden möchte, habe ich CTRL+C, verwendet, aber ich habe festgestellt, dass sie nicht angehalten wurde. Dann habe ich den Server neu gestartet! Ich habe festgestellt, dass ich noch auf die Seite im Browser zugreifen kann. Orz.

Ich habe folgendes versucht, kann aber den laufenden Prozess immer noch nicht herausfinden.

[email protected]:~$ killall node
node: no process found

[email protected]:~$ ps -ef|grep node
yole      3161  2888  0 16:57 pts/1    00:00:00 grep node

[email protected]:~$ netstat -apn|grep 3000

Frage Wie wird der laufende Knotenprozess ermittelt oder wie wird er beendet?.

===== update Es ist sehr seltsam, dass alle Browser meines Computers die Site besuchen können, während sie auf einem anderen Computer nicht verfügbar sind! Ich besuche die Seite nur mit Chrome, bevor ich die Anwendung stoppe. Es scheint ein Cache-Problem zu sein, aber wie der Cache von Browsern gemeinsam genutzt wird.

17
yuyue007

Listenknotenprozess:

$ ps -e|grep node

Beenden Sie den Vorgang mit

$kill -9 XXXX

Hier ist XXXX die Prozessnummer

57
Damodaran

Wenn Sie wissen möchten, wie Node-Prozesse ausgeführt werden können, können Sie diesen Befehl verwenden

ps -aef | grep node

Es wird also eine Liste der nodejs-Prozesse mit ihrem Projektnamen angezeigt. Dies ist hilfreich, wenn Sie eine Mehrfach-Knoten-Anwendung ausführen und einen bestimmten Prozess für das jeweilige Projekt beenden möchten.

Der obige Befehl gibt die Ausgabe ähnlich aus

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.

Um zu töten, können Sie den folgenden Befehl verwenden

kill -9 12886

So wird der spcefic-Knotenprozess abgebrochen

13

Sie können alle Knotenprozesse mit pkill node beenden.

oder Sie können einen ps T ausführen, um alle Prozesse auf diesem Terminal anzuzeigen
dann können Sie eine bestimmte Prozess-ID mit einem kill [processID]-Beispiel beenden: kill 24491

Darüber hinaus können Sie einen ps -help ausführen, um alle verfügbaren Optionen anzuzeigen

6
ConfusedDeer

Wenn all diese Kill-Prozess-Befehle für Sie nicht funktionieren, prüfe ich, ob Sie andere Pakete für die Ausführung Ihres Knotenprozesses verwendet haben.

Ich hatte ein ähnliches Problem, und ich hatte meinen Knotenprozess mit PM2 (einem NPM-Paket) ausgeführt. Der Befehl kill [processID] deaktiviert den Prozess, belässt jedoch den Port. Daher musste ich in PM2 gehen und den gesamten Node-Prozess entleeren, um den Port wieder freizugeben. 

0
Gin

Ich benutze fkill

INSTALLIERE

npm i fkill-cli -g

BEISPIELE

Suchvorgang in der Kommandozeile

fkill node

ODER: töten! ALL-Prozess

fkill node

ODER: Kill-Prozess über Port 8080

fkill :8080
0
Johan Hoeksma