pid wird mit ctrl-c beendet

pid wird mit ctrl-c beendet

Ich habe also eine Grunt-Aufgabe, die diesen Befehl ausführt:

java -jar build/lib/plovr.jar serve ./someroot' + configurationFile + ' & grunt watch:sass

Das Problem besteht darin, dass der Java-Prozess aus irgendeinem Grund weiterläuft, wenn ich mit Strg+C zur Shell wechsele.

Meine Idee zur Lösung dieses Problems wäre, die PID an eine Sitzungsvariable weiterzuleiten und einen weiteren Befehl hinzuzufügen, um dieselbe PID zu beenden.

Ich habe keine Ahnung, wie ich das erreichen kann, also brauche ich Hilfe. Wenn Ihnen außerdem ein einfacherer Weg einfällt, wäre ich Ihnen sehr dankbar.

Vielen Dank

AKTUALISIEREN

das Problem löste sich von selbst, als ich die Reihenfolge der ausgeführten Befehle änderte, etwa so

grunt watch && java -jar

Wenn ich also Strg-C drücke, wird der Java-Prozess beendet.

In jedem Fall wäre es schön, wenn mir jemand zeigen könnte, wie ich meinen ersten Anlauf durchführe.

Antwort1

Wenn Sie ein &-Zeichen in die Befehlszeile einfügen, wird der vorhergehende Befehl in den Hintergrund gestellt, weshalb Strg-C ihn nicht stoppt. Um ihn zu beenden, können Sie entweder kill $! ausführen, wobei $! von der Shell durch die letzte im Hintergrund ausgeführte Aufgabe ersetzt wird, oder den Befehl fg verwenden, um die letzte im Hintergrund ausgeführte Aufgabe in den Vordergrund zu holen, wo Sie dann Strg-C verwenden können.

verwandte Informationen