Es gibt nichts Ärgerlicheres, als einen Befehl in Ihrem Terminal auszuführen und ihn minuten-, manchmal stundenlang laufen zu lassen und Ihr Terminal nicht mehr verwenden zu können. Sicher, Sie können Registerkarten verwenden, aber das ist eine umständliche Lösung und nicht immer optimal, da Sie möglicherweise während der Arbeit Updates sehen möchten. Hier zeigen wir Ihnen einige verschiedene Möglichkeiten, um Bash-Befehle im Hintergrund unter Linux auszuführen.
Beenden Sie einen Befehl mit &
Wenn Sie einen Befehl in den Hintergrund schieben möchten, verwenden Sie & am Ende ist das ein einfacher Weg. Auf diese Weise können Sie im Hintergrund einen Befehl ausführen und Ihr Terminal während der Ausführung weiter verwenden. Es hat jedoch einen Haken. Verwenden 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 erreichen möchte STDOUT oder STDERR wird weiterhin gedruckt, was störend sein kann.
COMMAND &
Wenn die Terminalsitzung geschlossen wird, endet der Befehl. Sie können den Befehl auch beenden, indem Sie die jobs Befehl, die Nummer des laufenden Befehls finden und mit dem . beenden kill Befehl. Diese Syntax lautet wie folgt:

kill %1
Verwenden von & ist gut, wenn Sie etwas aufschieben müssen, aber nicht erwarten, dass es ewig so weitergeht.
& Nach einem Befehl, dann verleugnen
Ausführen eines Befehls mit just & schiebt es nach hinten weg und lässt es laufen, solange das Terminalfenster geöffnet ist. Wenn Sie diesen Befehl jedoch konstant ausführen möchten, auch wenn Ihre Terminalsitzung endet, können Sie die disown Befehl.
Um diese Methode zu verwenden, fügen Sie zunächst ein . hinzu &.
COMMAND &
Wie oben erwähnt, mit & schiebt diesen Befehl in den Hintergrund, trennt ihn jedoch nicht von Ihrem Benutzer. Sie können dies überprüfen, indem Sie eingeben jobs ins Terminal. Es zeigt den Befehl, der im Hintergrund ausgeführt wird, wie wir zuvor gesehen haben.
Tipp einfach disown in die Shell, und es wird genau das tun. (Und Sie können dies noch einmal mit der jobs Befehl.)

disown Befehl drinJetzt können Sie Ihr Terminal schließen und Ihren Tag fortsetzen. Es wird immer noch Dinge zu pfeifen STDOUT oder STDERR, aber sobald Sie Ihr Terminal verlassen und wieder öffnen, sehen Sie dort nichts mehr. Den Befehl finden Sie wieder mit dem top oder ps Befehle und töte es mit dem kill Befehl.

& Nach einem Befehl mit /dev/null
Hinzufügen & Nach einem Befehl wird ein Befehl in den Hintergrund verschoben, aber als Ergebnis wird der Hintergrundbefehl weiterhin Nachrichten in das Terminal ausgeben, während Sie es verwenden. Wenn Sie dies verhindern möchten, sollten Sie den Befehl an umleiten /dev/null.

COMMAND &>/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 um den laufenden Befehl vom Benutzer zu verleugnen. Sie können es auch mit einer der oben genannten Methoden beenden, wenn es nicht mehr ausgeführt werden soll.
Nohup, mit & und /dev/null
Im Gegensatz zu den vorherigen Befehlen verwenden Sie nohup ermöglicht es Ihnen, einen Befehl im Hintergrund auszuführen und am Laufen zu halten. Wie? nohup umgeht das HUP-Signal (Signal Hang Up), sodass Befehle im Hintergrund ausgeführt werden können, auch wenn das Terminal ausgeschaltet ist. Kombinieren Sie diesen Befehl mit der Umleitung zu „/dev/null“ (um zu verhindern, dass nohup eine nohup.out-Datei erstellt), und alles geht mit einem Befehl in den Hintergrund.
nohup COMMAND &>/dev/null &

Die meisten Terminalprogramme unter Linux haben heute Funktionen eingebaut, die es ihnen ermöglichen, mit geringem Aufwand im Hintergrund ausgeführt zu werden. Darüber hinaus können moderne Init-Systeme (wie systemd) Benutzern ermöglichen, Programme wie Dienste beim Booten oder jederzeit zu starten.
Dennoch fehlt einigen Programmen unter Linux die Fähigkeit, als Daemon zu laufen oder sich in moderne Init-Systeme zu integrieren. Dies ist eine echte Unannehmlichkeit, aber verständlich, da nicht alle Entwickler die Fähigkeit oder Zeit haben, neue Funktionen hinzuzufügen.
Zum Glück Befehle wie nohup oder disown sind immer noch Realität und können die Lücke schließen, solche Programme in den Hintergrund zu rücken. Sie sind nicht perfekt oder schick, aber sie erledigen die Arbeit, wenn sie gebraucht wird.
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 .
Unterstützen Sie unsere Arbeit ❤️
Wenn Ihnen dieser Artikel gefallen hat, können Sie uns mit einem Trinkgeld unterstützen, damit wir weiterhin großartige Inhalte veröffentlichen können.
























