Linux / Befehl bg: Einen Shell-Job im Hintergrund fortsetzen
bg setzt einen angehaltenen Job im Hintergrund in Bash fort. Es wird verwendet, wenn Sie einen laufenden Befehl mit Ctrl+Z anhalten und weiterhin das Terminal nutzen möchten.
bg sendet ein Fortsetzungssignal an einen angehaltenen Job, gibt jedoch die Vordergrundkontrolle des Terminals nicht zurück. Sie können die Jobnummer mit jobs überprüfen und sie wie %1 angeben. Interaktive Programme, die auf Eingaben warten, können im Hintergrund erneut anhalten.
Grundlegende Syntax
bg [%job number]
Die installierte Implementierung und die Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung für Ihr System mit help bg.
Beispiele
Angehaltene Jobs überprüfen
Nachdem Sie Ctrl+Z während der Ausführung eines Vordergrundbefehls gedrückt haben, überprüfen Sie den Status.
jobs -s
Wiederaufnahme eines bestimmten Jobs im Hintergrund
Ersetzen Sie im Beispiel %1 durch die tatsächliche Zahl aus der Ausgabe von jobs.
bg %1
Überprüfen des Wiederaufnahme-Ergebnisses
Überprüfen Sie, ob es sich im Status "Running" befindet.
jobs -l
Ausführen eines pausierten Jobs im Hintergrund
bg setzt einen Job fort, der derzeit im Hintergrund der aktuellen Shell pausiert ist. Zum Beispiel: Nach dem Ausführen von sleep 60 und dem Anhalten mit Ctrl+Z überprüfen Sie die Jobnummer.
jobs bg %1 jobs
Beispiel für Zustandsänderungen:
[1]+ Stopped sleep 60 [1]+ Running sleep 60 &
%1 bezieht sich auf die Jobnummer 1 in der aktuellen Shell, nicht auf die PID. Wenn die Shell keine Jobsteuerung unterstützt oder keine pausierten Jobs vorhanden sind, wird bg fehlschlagen. Wenn ein Job beendet ist, kann er aus jobs verschwinden, prüfen Sie daher den Status erneut.
Hauptoptionen und Format
| Optionen/Format | Beschreibung |
|---|---|
%N |
Geben Sie die Jobnummer N der aktuellen Shell an. |
%+ |
Geben Sie den aktuellen Job an. |
%- |
Geben Sie den vorherigen Job an. |
Ohne Argument |
Verwenden Sie den Job, den Bash als aktuellen Job betrachtet. |
Vorsichtsmaßnahmen bei der Verwendung
Ein mit Ctrl+Z gestoppter Job läuft noch nicht. Ein Job, der versucht, von der Standard-Eingabe zu lesen, kann erneut gestoppt werden, selbst wenn er mit bg fortgesetzt wird. bg ist eine Shell-Jobsteuerungsfunktion und kann nicht auf Prozesse angewendet werden, die in einem anderen Terminal gestartet wurden.
Häufig gestellte Fragen
Ist es dasselbe, & am Ende eines Befehls anzuhängen und bg zu verwenden?
& startet den Befehl von Anfang an im Hintergrund, während bg einen derzeit gestoppten Job in der Shell im Hintergrund fortsetzt.
Offizielle Dokumentation
Das genaue Verhalten dieser Optionen und Unterschiede in der Implementierung sind in der offiziellen bg-Dokumentation zu finden.




