Linux / Befehl fg: Einen Shell-Job in den Vordergrund bringen

fg bringt einen Hintergrund- oder gestoppten Job der aktuellen Shell in den Vordergrund. Es wird verwendet, wenn Sie möchten, dass dieser Job wieder Terminaleingaben erhält oder seinen Status direkt überprüfen können.

Wenn er in den Vordergrund gebracht wird, wartet die Shell-Eingabeaufforderung, bis der Job endet oder wieder gestoppt wird. Sie können die Jobnummer mit jobs überprüfen. Das Ziel von fg ist nicht die PID, sondern der Jobspezifizierer der aktuellen Shell.

Grundlegende Syntax

fg [%job number]

Installierte Implementierungen und Optionen können je nach Distribution variieren. Verwenden Sie help fg, um die Beschreibung auf Ihrem aktuellen System zu überprüfen.

Beispiele

Aktuelle Shell-Jobs überprüfen

Überprüfen Sie, welche Jobs im Hintergrund laufen.

jobs -l

Einen bestimmten Job in den Vordergrund bringen

Ersetzen Sie die Jobnummer im Beispiel durch den tatsächlichen Wert.

fg %1

Stoppen oder beenden Sie den Job erneut

Bei Vordergrundjobs stoppt Ctrl+Z, und Ctrl+C sendet normalerweise ein Interrupt-Signal.

jobs

Hintergrundaufgaben in den Vordergrund bringen

fg bringt einen Job von der aktuellen Shell in den Vordergrund des Terminals, sodass Sie mit ihm interagieren oder warten können, bis er abgeschlossen ist. Überprüfen Sie zuerst die Jobnummer mit jobs.

jobs
fg %1

Wenn Sie zum Beispiel vim notes.txt mit Ctrl+Z pausieren, bringt das erneute Aufrufen mit fg %1 den Editor-Bildschirm zurück zum Terminal. Die Anzeige und der Rückkehrpunkt hängen vom Programm ab, daher gibt es keine feste einzeilige Ausgabe.

fg ist kein Befehl, um beliebige PIDs von anderen Terminals zu übernehmen. Wenn der Job bereits beendet ist oder kein Job der aktuellen Shell ist, kann er nicht in den Vordergrund gebracht werden. Um ein laufendes Programm erneut zu pausieren, verwenden Sie im Allgemeinen Ctrl+Z.

Hauptoptionen und Format

Optionen/Format Beschreibung
%N Wählen Sie die Jobnummer N der aktuellen Shell.
%+ Wählen Sie den aktuellen Job aus.
%- Wählen Sie den vorherigen Job aus.
Ohne Argument Richten Sie sich auf den aktuellen Job.

Vorsichtsmaßnahmen bei der Verwendung

Prozesse, die nicht von der aktuellen Shell verwaltet werden, können nicht mit fg in den Vordergrund gebracht werden. In nicht-interaktiven Umgebungen kann die Jobsteuerung deaktiviert sein. Um lange laufende Aufgaben auch nach dem Schließen des Terminals weiterzuführen, verwenden Sie eine dafür eingerichtete tmux-Sitzung oder einen Dienstmanager. fg allein hält eine Sitzung nach dem Schließen des Terminals nicht aufrecht.

Häufig gestellte Fragen

In fg %1, ist %1 die PID?

Nein. Es ist die Jobnummer der aktuellen Shell. Verwenden Sie die in der jobs-Ausgabe angezeigte Nummer.

Offizielle Dokumentation

Das genaue Verhalten der Option und implementierungsspezifische Unterschiede können in der offiziellen fg-Dokumentation nachgelesen werden.