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.
Listenknotenprozess:
$ ps -e|grep node
Beenden Sie den Vorgang mit
$kill -9 XXXX
Hier ist XXXX die Prozessnummer
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
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
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.
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