Wenn Sie eine lang andauernde Aufgabe haben, ist es nicht immer ratsam, auf deren Abschluss zu warten. Ich meine, warum das Terminal für einen bestimmten Befehl besetzt halten? Unter Linux können Sie einen Befehl oder Prozess in den Hintergrund schicken, sodass der Befehl ausgeführt wird, aber das Terminal bleibt für Sie frei, andere Befehle auszuführen.
In diesem Tutorial zeige ich Ihnen einige Möglichkeiten, einen Prozess im Hintergrund zu senden. Ich zeige Ihnen auch, wie Sie die Hintergrundprozesse wieder in den Vordergrund bringen.
Linux-Prozess direkt im Hintergrund starten
Wenn Sie wissen, dass der Befehl oder Prozess lange dauern wird, wäre es eine bessere Idee, den Befehl selbst im Hintergrund zu starten.
Um einen Linux-Befehl im Hintergrund auszuführen, müssen Sie lediglich das kaufmännische Und (&) am Ende des Befehls hinzufügen, wie hier:
your_command &
Nehmen wir einen einfachen Bash-Sleep-Befehl und senden ihn in den Hintergrund.
sleep 60 &
Wenn der Befehl im Hintergrund beendet wird, sollten Sie Informationen darüber auf dem Terminal sehen.
[1]+ Done sleep 60
Sende einen laufenden Linux-Prozess in den Hintergrund
Wenn Sie bereits ein Programm ausgeführt haben und dann festgestellt haben, dass Sie es im Hintergrund hätten ausführen sollen, machen Sie sich keine Sorgen. Sie können einen laufenden Prozess auch in den Hintergrund schicken.
Was Sie hier tun müssen, ist Strg+Z zu verwenden um den laufenden Prozess zu unterbrechen und verwenden Sie dann ‘bg ‘ (kurz für Hintergrund), um den Prozess in den Hintergrund zu schicken. Der angehaltene Prozess wird nun im Hintergrund ausgeführt.
running_command
^z
bg
Nehmen wir dasselbe Beispiel wie zuvor.
[email protected]:~$ sleep 60
^Z
[1]+ Stopped sleep 60
[email protected]:~$ bg
[1]+ sleep 60 &
Alle im Hintergrund laufenden Prozesse anzeigen
Nachdem Sie nun wissen, wie die Prozesse im Hintergrund gesendet werden, interessiert es Sie vielleicht, welche Befehle im Hintergrund ausgeführt werden.
Dazu können Sie im Terminal diesen Befehl eingeben:
jobs
Lassen Sie uns zuerst einige Befehle in den Hintergrund stellen.
firefox &
gedit &
vim &
Jetzt zeigt Ihnen der Jobs-Befehl alle laufenden Jobs/Prozesse/Befehle im Hintergrund wie folgt:
jobs
[1] Running firefox &
[2]- Running gedit &
[3]+ Stopped vim
Beachten Sie die Zahlen [1], [2] und [3] usw.? Dies sind die Job-IDs. Sie würden auch das – und + Zeichen bei zwei der Befehle bemerken. Das +-Zeichen zeigt den letzten Job an, den Sie ausgeführt oder in den Vordergrund gestellt haben. Das Zeichen – zeigt den vorletzten Job an, den Sie ausgeführt oder in den Vordergrund gestellt haben.
Einen Prozess in Linux in den Vordergrund bringen
In Ordnung! Sie haben also gelernt, Befehle unter Linux im Hintergrund auszuführen. Aber wie wäre es, einen im Hintergrund laufenden Prozess wieder in den Vordergrund zu holen?
Um den Befehl in den Hintergrund zu senden, haben Sie „bg“ verwendet. Um den Hintergrundprozess zurückzubringen, verwenden Sie den Befehl „fg“.
fg
Wenn Sie jetzt einfach fg verwenden, wird der letzte Prozess in der Hintergrundjobwarteschlange in den Vordergrund gebracht. In unserem vorherigen Beispiel bringt das Ausführen von „fg“ den Vim-Editor zurück zum Terminal.
Wenn Sie einen bestimmten Prozess in den Vordergrund holen möchten, müssen Sie seine Job-ID angeben. Die Job-ID ist die Nummer, die Sie am Anfang jeder Zeile in der Ausgabe des Befehls „jobs“ sehen.
fg n
Wobei n die Job-ID ist, wie sie in der Ausgabe des Befehls jobs.
angezeigt wirdDas ist es
Das war schnell, aber genug, um ein paar Dinge über das Ausführen von Befehlen im Hintergrund unter Linux zu lernen. Ich würde empfehlen, auch den Befehl nohup zu lernen. Mit diesem Befehl können Sie Befehle im Hintergrund ausführen, selbst nachdem Sie sich von der Sitzung abgemeldet haben.
Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie bitte unten einen Kommentar.