So führen Sie Bash-Befehle im Hintergrund unter Linux aus

Es gibt nichts Ärgerlicheres, als einen Befehl in Ihrem Terminal auszuführen und minutenlang ausführen zu lassen, manchmal Stunden, und nicht in der Lage sein, Ihr Terminal wieder zu verwenden. Sicher, Sie können Tabs verwenden, aber das ist eine klobige Lösung, und es ist nicht immer optimal, weil Sie Updates sehen möchten, wie Sie arbeiten. Hier zeigen wir Ihnen einige verschiedene Möglichkeiten, Bash-Befehle unter Linux im Hintergrund auszuführen.,

Beenden Sie einen Befehl mit &

Wenn Sie einen Befehl in den Hintergrund schieben möchten, ist die Verwendung von & am Ende eine einfache Möglichkeit, dies zu tun. Auf diese Weise können Sie einen Befehl im Hintergrund ausgeben und Ihr Terminal während der Ausführung weiterhin verwenden. Es kommt jedoch mit einem Haken. Die Verwendung von & trennt den Befehl nicht von Ihnen.es schiebt es nur in den Hintergrund., Dies bedeutet, dass während Sie versuchen, das Terminal zu verwenden, alles, was der Befehl an STDOUT oder STDERR wird immer noch gedruckt, was ablenkend sein kann.

BEFEHL &

Wenn die Terminalsitzung geschlossen wird, endet der Befehl., Sie können den Befehl auch beenden, indem Sie den Befehl jobs, die Nummer des ausgeführten Befehls finden und mit dem Befehl kill. Die syntax ist wie folgt:

kill %1

Mit & ist gut, wenn Sie müssen Sie drücken etwas aus für ein bisschen, aber nicht erwarten, dass es immer weiter.,

& Nach einem Befehl deaktivieren

Ausführen eines Befehls mit nur & schiebt es nach hinten und hält es so lange laufen, wie das Terminalfenster geöffnet ist. Wenn Sie diesen Befehl jedoch konstant halten möchten, auch wenn Ihre Terminalsitzung endet, können Sie den Befehl disown.

Um diese Methode zu verwenden, fügen Sie zunächst eine &hinzu.,

COMMAND &

Wie oben erwähnt, wird dieser Befehl mit & in den Hintergrund verschoben, aber nicht von Ihrem Benutzer getrennt. Sie können dies überprüfen, indem Sie jobs in das Terminal eingeben. Es zeigt den Befehl, der im Hintergrund ausgeführt wird, wie wir zuvor gesehen haben.

Geben Sie einfach disown in die Shell ein, und genau das wird es tun. (Und Sie können dies erneut mit dem Befehl jobs überprüfen.,)

Sie können einfach den Befehl disown

Jetzt können Sie Ihr Terminal schließen und weiter über Ihren Tag. Es wird immer noch Dinge an STDOUT oder STDERR, aber sobald Sie Ihr Terminal verlassen und wieder öffnen, werden Sie dort nichts mehr sehen., Sie finden den Befehl erneut mit den Befehlen top oder ps und beenden ihn mit dem Befehl kill.

Der disowned Job ist der zweite mit der PID 16238.,

& Nach einem Befehl mit /dev/null

Hinzufügen & nachdem ein Befehl einen Befehl in den Hintergrund gedrückt hat, druckt der Hintergrundbefehl weiterhin Nachrichten in das Terminal, während Sie ihn verwenden. Wenn Sie dies verhindern möchten, sollten Sie den Befehl auf /dev/nullumleiten.,

BEFEHL &>/dev/null &

Dies verhindert nicht, dass der Befehl geschlossen wird, wenn das Terminal geschlossen wird. Wie oben erwähnt, ist es jedoch möglich, disown zu verwenden, um den laufenden Befehl vom Benutzer fernzuhalten. Sie können es auch mit einer der oben genannten Methoden beenden, wenn Sie nicht mehr ausführen möchten.,

Nohup mit & und /dev/null

Im Gegensatz zu den vorherigen Befehlen können Sie mit nohup einen Befehl im Hintergrund ausführen und am Laufen halten. Wie? nohup umgeht das HUP-Signal (Signal auflegen) und ermöglicht die Ausführung von Befehlen im Hintergrund, auch wenn das Terminal ausgeschaltet ist. Kombinieren Sie diesen Befehl mit der Umleitung zu „/ dev / null“ (um zu verhindern, dass nohup ein nohup erstellt.out-Datei), und alles geht in den Hintergrund mit einem Befehl.,

nohup BEFEHL &>/dev/null &

Die meisten Terminalprogramme unter Linux verfügen heute über integrierte Funktionen, mit denen sie mit geringem Aufwand im Hintergrund ausgeführt werden können. Außerdem können moderne Init-Systeme (wie systemd) Benutzern erlauben, Programme wie Dienste beim Booten oder wann immer zu starten.,

Einige Programme unter Linux können jedoch nicht als Daemon ausgeführt oder in moderne Init-Systeme integriert werden. Dies ist eine echte Unannehmlichkeit, ist aber verständlich, da nicht alle Entwickler die Fähigkeit oder Zeit haben, neue Funktionen hinzuzufügen.

Zum Glück sind Befehle wie nohup oder disown immer noch Realität und können die Lücke beim Verschieben von Programmen wie diesem in den Hintergrund schließen. Sie sind nicht perfekt oder schick, aber sie erledigen die Arbeit bei Bedarf.,

Wenn Ihnen dieser Linux-Artikel gefallen hat, sollten Sie sich einige unserer anderen Linux-Inhalte ansehen, z. B. wie Sie Ihr Google-Konto mit GNOME Shell verbinden, 5 der besten Linux-Distributionen für Windows-Benutzer im Jahr 2021 und 15 LS-Befehle, die Sie kennen müssen.

Verwandt:

John Perkins

John ist ein junger technischer Fachmann mit einer Leidenschaft für die Ausbildung von Benutzern über die besten Möglichkeiten, ihre Technologie zu nutzen. Er verfügt über technische Zertifizierungen zu Themen von Computerhardware über Cybersicherheit bis hin zur Linux-Systemadministration.,

Holen Sie sich unsere Geschichten in Ihren Posteingang geliefert.

Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.