Wie schicke ich einen Prozess in den Hintergrund und in den Vordergrund?

16

In diesem Fall ping google.com &tritt der Vorgang in den Hintergrund und zeigt mir weiterhin die Ping-Details an. Ich kann terminal immer noch mit anderen Befehlen verwenden, aber die Ausgabe von ping und die Ausgabe von anderen Befehlen werden verwechselt (was kein Problem ist), aber ich kann diesen Ping-Vorgang überhaupt nicht beenden.

Dazu möchte ich es in den Vordergrund bringen und dann Strg + C oder so drücken. Ich habe es versucht fg, aber es hat auch nicht funktioniert. Wie komme ich ping google.com &wieder in den Vordergrund, nachdem ich am Ende meines Ping-Befehls die Eingabetaste gedrückt habe?

posixKing
quelle
2
Es scheint, als ob das Problem, das Sie tatsächlich lösen möchten, darin besteht, einen Hintergrundjob zu beenden. Es ist nicht nötig, es in den Vordergrund zu stellen. Verwenden Sie jobsdiese Option , um die Job-ID jiddes Hintergrundprozesses zu ermitteln, und kill %jidbeenden Sie sie anschließend.
Gardenhead

Antworten:

30

fgist der richtige Befehl, um einen Job in den Vordergrund zu stellen. Wenn jedoch mehr als ein Job ausgeführt wird, müssen Sie die Jobnummer angeben. Wenn Sie nur tippen fg, wird der letzte Hintergrundjob (der von der Shell als aktueller Job betrachtet wird) in den Vordergrund gerückt.

Erhalten Sie die aktuellen Jobs:

$ jobs
[1]+     ping google.com &

Vordergrund des Jobs durch Angabe der Nummer:

fg %1

Der Befehl wird möglicherweise durch die Ausgabe des laufenden Prozesses unterbrochen, funktioniert jedoch weiterhin. Sie können die Unterbrechung ignorieren.

Drücken Sie dann ctrl+ c, um den Vorgang zu unterbrechen und anzuhalten

Wie in einem Kommentar erwähnt, können Sie beispielsweise auch Signale nach Auftragsnummer senden kill %1

Wenn Sie &zum Zeitpunkt des Aufrufs des Prozesses den nicht verwendet haben, können Sie ihn der Vollständigkeit halber in den Hintergrund stellen, indem Sie zuerst mit ctrl+ einfrieren zund dann eingebenbg

Zanna
quelle
1
Einfach fgohne Argument scheint auch zu funktionieren, zumindest wenn nur ein Hintergrundjob vorliegt.
Cedric Reichenbach
1
@CedricReichenbach bearbeitet!
Zanna
-2

Um die gestellte Frage zu beantworten: Wie wird die Ausgabe eines Prozesses in den Hintergrund und in den Vordergrund gesendet? Der teeBefehl bewirkt Folgendes:

Beim Rechnen ist tee ein Befehl in Befehlszeileninterpretern (Shells), die Standard-Streams verwenden, die die Standardeingabe lesen und sowohl in die Standardausgabe als auch in eine oder mehrere Dateien schreiben, wodurch die Eingabe effektiv dupliziert wird. https://en.wikipedia.org/wiki/Tee_(command)

erqe4tjwtjwertjwrtj
quelle
5
Sie haben hier ein Missverständnis ...
Byte Commander