Manchmal kann es sinnvoll sein, einen im Vordergrund gestarteten Prozess anzuhalten, weil dieser so viel CPU oder IO nutzt weshalb ein andere Prozess, auf den man gerade wartet, nicht fertig wird. Auf Rechnern, die entweder wenig CPU Power haben und/oder ein langsames Speichermedium besitzen, kann das schonaml vorkommen. Aber auch auf Power Servern kann das Prozess anhalten mal nützlich sein. Um den gestarteten Prozess nicht töten zu müssen, wäre es also sinnvoll, diesen anzuhalten und später wieder weiterlaufen zu lassen.

In der Konsole einfach den Problem Prozess mit Strg+Z stoppen ist die Lösung:

root@server /mnt/backup/images # mv /home/public/* ./
^Z
[1]+  Angehalten              mv /home/public/* ./

Um dann den Prozess wieder weiter auszuführen, kann der angehaltene Prozess wieder in den Vordergrund geholt werden. Dazu ist die Zahl in den eckigen Klammern, die nach dem Strg+Z angezeigt wird wichtig, in diesem Beispiel die 1:

fg 1

Normalerweise wird man nur einen Prozess anhalten um ihn dann später weiter auszuführen. Sollte man mal mehrere Prozesse gestartet und angehalten haben, dann erhält man eine Übersicht mit dem Kommando jobs:

root@server /mnt/backup/images # jobs
[1]+  Angehalten              mv /home/public/* ./

Möchte man die Konsole für andere Zwecke verwenden, den Zeitraubenden Job aber trotzdem weiter ausführen, dann kann dieser im Hintergrund verschoben werden und dort weiter ausgeführt werden:

bg 1

Anbei noch ein Beispiel: Ein Dummy Job (sleep 300) wird per “&” im Hintergrund gestartet und ausgeführt, dann wieder mit “fg 2” in den Vordergrund geholt und mit Strg-Z gestoppt. Anschließend mit “bg 2” im Hintergrund weiter ausgeführt:

root@server /mnt/backup/images # sleep 300 &
[2] 14610
root@server /mnt/backup/images #
root@server /mnt/backup/images #
root@server /mnt/backup/images # jobs
[1]+  Angehalten              mv /home/public/* ./
[2]-  Läuft                  sleep 300 &
root@server /mnt/backup/images #
root@server /mnt/backup/images # fg 2
sleep 300
^Z
[2]+  Angehalten              sleep 300
root@server /mnt/backup/images # jobs
[1]-  Angehalten              mv /home/public/* ./
[2]+  Angehalten              sleep 300
root@server /mnt/backup/images # bg 2
[2]+ sleep 300 &
root@server /mnt/backup/images # jobs
[1]+  Angehalten              mv /home/public/* ./
[2]-  Läuft                  sleep 300 &
root@server /mnt/backup/images #