IT

Linux Disown – Befehl im Hintergrund ohne Terminal laufen lassen

Manchmal benötigt man unter Linux die Möglichkeit einen einfachen Befehl im Hintergrund für eine längere Zeit ausführen zu lassen, z. B. zu Analysezwecken. Leider würde man diesen Befehl bzw. dieses Kommando abbrechen, wenn man das entsprechende Terminal schließt. Insbesondere wenn man per Remote zugreift, möchte man vermutlich, dass ein solcher Befehl völlig unabhängig vom geöffneten Terminal auch weiter ausgeführt wird. Man könnte natürlich überlegen dafür einen CronJob anzulegen, aber unter Umständen ist einem dies für einen überschaubaren Zeitraum von ein bis zwei Tagen zu viel Aufwand. Abhilfe schafft man mit dem Befehl „disown“.

 

Disown-Kurzanleitung

Im folgenden Beispiel hängt man ein „Und“-Zeichen, welches schon alleine dafür sorgt dass der Befehl im Hintergrund läuft, und den Befehl „disown“ einfach hinter den Befehlen an, die man sonst so im Terminal abgesetzt hätte:

Diese laufen dann durch „disown“ auch unabhängig vom Benutzer und dem Terminal, von dem aus sie abgesetzt worden sind, einfach im Hintergrund weiter. Und das solange der Computer läuft und man sie nicht manuell abschießt oder ihre einmalige Aufgabe erledigt ist.

 

Disown unter Linux

Im vorherigen Beispiel habe ich mir Daten von tcpdump zur späteren Auswertung in Wireshark abspeichern lassen. Um genau zu sein die Zugriffe, die den Destination Port 443 haben. Noch etwas feiner hatte ich das Abspeichern in einzelne Dateien mit einer Größenbeschränkung und Benennung mit Datum und Uhrzeit im Dateinamen erweitert und wie folgt laufen lassen:

Auch hier ist wieder „disown“ angehangen.

 

Disown-Hintergrundbefehle beenden

Auch wenn die Befehle losgelöst vom Terminal bzw. der Session im Hintergrund laufen, will man dieses vermutlich irgendwann auch wieder beenden. Dies erreicht man ganz einfach über den „KILL“-Befehl. Für diesen benötigt man die entsprechende PID unter welcher das Kommando ausgeführt wird.

Die PID kann man sich mit top oder besser noch htop, wo man auch den kompletten Befehl und nicht nur das ausgeführte Programm sehen kann, besorgen.

Natürlich werden die Hintergrundbefehle auch abgeschossen und nicht wieder gestartet wenn man den Computer einfach komplett neu startet.

 

Tobias Langner

Tobias Langner

Ich arbeite seit mehreren Jahren als Software-Release-Manager, zuvor als IT-Administrator, bin ausgebildeter Fachinformatiker für Systemintegration und Studium-"Pausierer" an der FernUni Hagen. Achtung: Für die Richtigkeit der zur Verfügung gestellten Informationen, Skripte, etc. übernehme ich keine Gewähr. Deren Nutzung geschieht ausdrücklich auf eigene Gefahr!

Alle Beiträge ansehen von Tobias Langner →

Schreibe einen Kommentar

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