So schließen Sie Hintergrundprogramme unter macOS im Terminal

So schließen Sie Hintergrundprogramme unter macOS im Terminal

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, nodeist jedoch:

killall node

Oder rufen Sie mit eine Liste der Prozesse ab ps -efund suchen Sie den Prozess, den Sie beenden möchten:

ps -ef | grep "node" | grep -v grep

Einfach ausführen psreicht 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 wieforeverDiese sind dafür gedacht, Programme im Hintergrund laufen zu lassen (mit optionalen Parametern), die man auch ganz einfach wieder stoppen kann.

verwandte Informationen