GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bg, Fg, &, Ctrl-Z – 5 Beispiele zum Verwalten von Unix-Hintergrundjobs

Wenn Sie ein Unix-Shell-Skript oder einen Befehl ausführen, der lange dauert, können Sie ihn als Hintergrundjob ausführen.

In diesem Artikel sehen wir uns an, wie Sie einen Job im Hintergrund ausführen, einen Job in den Vordergrund bringen, alle Hintergrundjobs anzeigen und einen Hintergrundjob beenden.

1. Ausführen eines Hintergrundjobs

Durch Anhängen eines kaufmännischen Und (&) an den Befehl wird der Job im Hintergrund ausgeführt.

Wenn Sie beispielsweise einen Suchbefehl ausführen, dessen Ausführung viel Zeit in Anspruch nehmen kann, können Sie ihn wie unten gezeigt in den Hintergrund stellen. Das folgende Beispiel findet alle Dateien im Root-Dateisystem, die sich in den letzten 24 Stunden geändert haben.

# find / -ctime -1 > /tmp/changed-file-list.txt &

2. Senden des aktuellen Vordergrund-Jobs an den Hintergrund mit STRG-Z und bg-Befehl

Sie können einen bereits laufenden Vordergrundjob wie unten beschrieben in den Hintergrund schicken:

  • Drücken Sie „STRG+Z“, wodurch der aktuelle Vordergrundjob angehalten wird.
  • Führen Sie bg aus, damit dieser Befehl im Hintergrund ausgeführt wird.

Wenn Sie beispielsweise vergessen haben, einen Job im Hintergrund auszuführen, müssen Sie den aktuellen Job nicht beenden und einen neuen Hintergrundjob starten. Unterbrechen Sie stattdessen den aktuellen Job und versetzen Sie ihn wie unten gezeigt in den Hintergrund.

# find / -ctime -1 > /tmp/changed-file-list.txt

# [CTRL-Z]
[2]+  Stopped                 find / -ctime -1 > /tmp/changed-file-list.txt

# bg

3. Zeigen Sie alle Hintergrundjobs mit dem Jobs-Befehl an

Mit dem Befehl jobs können Sie sich die Hintergrundjobs anzeigen lassen . Beispielausgabe des Befehls jobs ist

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

4. Einen Job mit dem fg-Befehl vom Hintergrund in den Vordergrund bringen

Sie können einen Hintergrundjob mit dem fg-Befehl in den Vordergrund bringen . Wenn es ohne Argumente ausgeführt wird, bringt es den letzten Hintergrundjob in den Vordergrund.

# fg

Wenn Sie mehrere Bodenjobs im Hintergrund haben und einen bestimmten Job in den Vordergrund bringen möchten, führen Sie den Befehl jobs aus, der die Job-ID und den Befehl anzeigt.

Im folgenden Beispiel bringt fg %1 den Job#1 (d.h. download-file.sh) in den Vordergrund.

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

# fg %1

5. Beenden Sie einen bestimmten Hintergrundjob mit kill %

Wenn Sie eine bestimmte Verwendung eines Hintergrundjobs beenden möchten, beenden Sie %job-number. Um beispielsweise den Job zu beenden, verwenden Sie 2

# kill %2

Um einen Vordergrund-Job zu beenden, verwenden Sie eine der Methoden, die in unserem früheren Artikel 4 Wege zum Beenden eines Prozesses angegeben sind – kill, killall, pkill, xkill.


Linux
  1. UNIX / Linux:10 Netstat-Befehlsbeispiele

  2. 10 Xargs-Befehlsbeispiele in Linux / UNIX

  3. tail-Befehlsbeispiele in UNIX/Linux

  4. Linux:Hintergrundaufgabe beenden

  5. Ausführen von sqlplus im Hintergrund in Unix

DOS zu Unix:Befehle und Beispiele

Geplante Cron-Jobs

So verwenden Sie den Jobs-Befehl unter Linux

15 Linux sfdisk-Befehlsbeispiele zum Verwalten von Festplattenpartitionen

Linux Crontab:15 fantastische Cron-Job-Beispiele

Unix LS-Befehl:15 praktische Beispiele