Ich versuche, die Verwendung von Bash-Skripten zu erlernen, und bin auf einen seltsamen Fehler gestoßen.
Ich habe ein Terminal geöffnet und ein NPM-Programm mit dem folgenden Befehl ausgeführt:
node index.js &
Hierdurch wird eine express.js-API ausgeführt, die ich in einer von mir erstellten Benutzeroberfläche verwenden kann.
Danach habe ich das Terminal geschlossen und beendet.
Aber wenn ich Postman öffne, läuft meine API immer noch!
Es wird nicht angezeigt, wenn ich $ps oder $jobs verwende.
Wie finde und schließe ich dieses Programm?
PS: Ich verwende die neueste Version von Mac OS. PPS: Es tut mir leid, wenn diese Frage bereits gestellt wurde.
Antwort1
So beenden Sie den Prozess nach dem Beenden des Terminals
Ihnen stehen mehrere Möglichkeiten zur Verfügung. Die einfachste Möglichkeit, bei der alle Prozesse beendet werden, node
ist jedoch:
killall node
Oder rufen Sie mit eine Liste der Prozesse ab ps -ef
und suchen Sie den Prozess, den Sie beenden möchten:
ps -ef | grep "node" | grep -v grep
Einfach ausführen ps
reicht nicht aus. Die PID wird in der zweiten Spalte angezeigt. Führen Sie daher Folgendes aus:
kill <pid>
Wo <pid>
ist die Prozess-ID.
Was tun statt&
Wenn Sie während der Entwicklung ein Programm ständig laufen lassen möchten, z. B. einen Webserver, können Sie Tools wieforever
Diese sind dafür gedacht, Programme im Hintergrund laufen zu lassen (mit optionalen Parametern), die man auch ganz einfach wieder stoppen kann.