Rularea comenzilor Bash în fundal în modul corect [Linux]

Bash-Befehle im Hintergrund richtig ausführen [Linux]

⌛ Reading Time: 4 minutes

Alle waren schon da: Sie möchten ein Terminalprogramm ausführen und am Laufen halten. Das Problem ist, dass dieses Programm alt ist oder keine Funktion enthält, mit der es als Daemon im Hintergrund ausgeführt werden kann. Glücklicherweise gibt es verschiedene Möglichkeiten, Programme dazu zu zwingen, im Hintergrund zu arbeiten.

Bash kann dies alles alleine tun und zusätzliche Programme müssen nicht installiert werden. In diesem Artikel werden verschiedene Möglichkeiten beschrieben, wie Sie Terminalprogramme in den Hintergrund rücken und dort belassen können. Jede aufgeführte Methode eignet sich für einen speziellen Anwendungsfall.

Beenden Sie einen Befehl mit &

Wenn Sie einen Befehl in den Hintergrund stellen möchten, verwenden Sie & Am Ende ist ein einfacher Weg, das zu tun. Es kommt jedoch mit einem Haken. Verwenden von & trennt den Befehl nicht von Ihnen; Es wird nur in den Hintergrund verschoben, sodass Sie weiterhin ein Terminal verwenden können.

Wenn die Terminalsitzung geschlossen ist, wird der Befehl beendet. Verwenden von & ist gut, wenn Sie etwas abschieben müssen, aber nicht erwarten, dass es für immer weitergeht.

& Nach einem Befehl dann ablehnen

Ausführen eines Befehls mit just & schiebt es nach hinten ab und hält es am Laufen, solange das Terminalfenster geöffnet ist. Wenn Sie diesen Befehl jedoch auch nach Beendigung Ihrer Terminalsitzung konstant halten möchten, können Sie den Befehl verwenden disown Befehl.

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

Wie oben erwähnt, mit & schiebt diesen Befehl in den Hintergrund, trennt ihn jedoch nicht von Ihrem Benutzer. Sie können dies durch Eingabe überprüfen jobs in das Terminal. Der Befehl wird im Hintergrund ausgeführt.

Bash-Hintergrund-Disown-Jobs

Tippe einfach disown in die Shell, und es wird genau das tun (und Sie können dies noch einmal mit dem überprüfen jobs Befehl).

& Nach einem Befehl mit / dev / null

Hinzufügen & Nachdem ein Befehl einen Befehl in den Hintergrund verschoben hat, druckt der Hintergrundbefehl jedoch weiterhin Nachrichten in das Terminal, während Sie es verwenden. Wenn Sie dies verhindern möchten, sollten Sie den Befehl an umleiten /dev/null.

bash-background-dev-null

Dies verhindert nicht, dass der Befehl geschlossen wird, wenn das Terminal geschlossen wird. Wie oben erwähnt, ist es jedoch möglich, zu verwenden disown um den laufenden Befehl vom Benutzer fernzuhalten.

Nohup, mit & und / dev / null

Im Gegensatz zu den vorherigen Befehlen verwenden Sie nohup Mit dieser Option können Sie einen Befehl im Hintergrund ausführen und weiter ausführen. Wie? Nohup umgeht das HUP-Signal (Signal legt auf) und ermöglicht es, Befehle im Hintergrund auszuführen, auch wenn das Terminal ausgeschaltet ist. Kombinieren Sie diesen Befehl mit der Umleitung nach /dev/null (um zu verhindern, dass nohup eine nohup.out-Datei erstellt), und alles tritt mit einem Befehl in den Hintergrund.

Bash-Hintergrund-No-Hup

Fazit

Die meisten Terminalprogramme unter Linux verfügen heute über integrierte Funktionen, mit denen sie mit geringem Aufwand im Hintergrund ausgeführt werden können. Darüber hinaus können Benutzer mit modernen Init-Systemen (wie systemd) Programme wie Dienste beim Booten oder wann immer 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, 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 immer noch die Lücke schließen, wenn Programme wie dieses in den Hintergrund treten. Sie sind nicht perfekt oder schick, aber sie erledigen die Arbeit, wenn sie gebraucht werden.

Wie rückt man laufende Terminalprogramme in den Hintergrund? Sagen Sie es uns unten!

Bildnachweis: Ein Terminal – vier Bildschirme