Einführung
Die disown Der Befehl ist Teil der Unix-Shells ksh, bash und zsh und wird verwendet, um Jobs aus der aktuellen Shell zu entfernen. Wie cd oder pwd , es ist ein in die Shell integrierter Befehl und erfordert keine Root-Rechte.
Dieses Tutorial behandelt verschiedene Möglichkeiten, wie Sie disown verwenden können Befehl in Linux, um Jobs zu beenden und sie weiter laufen zu lassen, nachdem Sie sich abgemeldet haben.
Voraussetzungen
- Ein System, auf dem Linux ausgeführt wird
- Zugriff auf die Kommandozeile / das Terminalfenster
Leugnen Sie die Befehlssyntax
Die grundlegende Syntax für disown Befehl ist:
disown [options] jobID1 jobID2 ... jobIDN Verwendung des disown-Befehls unter Linux
Die disown Befehl in Linux wird verwendet, um Jobs aus der Jobtabelle zu entfernen. Sie können es auch verwenden, um einen längeren und komplexeren Job im Hintergrund laufen zu lassen, selbst nachdem Sie sich vom Server abgemeldet haben.
Laufende Aufträge prüfen
Um den disown zu verwenden Befehl müssen Sie zunächst Jobs auf Ihrem Linux-System ausführen.
In diesem Beispiel starten wir ein paar Jobs, die im Hintergrund laufen:
cat /dev/random > /dev/null &
ping google.com > /dev/null &
Verwenden Sie die jobs Befehl zum Auflisten aller aktuellen Jobs:
jobs -l Sie sollten eine ähnliche Ausgabe wie unten sehen:
Der ping Befehl wird durch ‘+’ gekennzeichnet , was bedeutet, dass es sich um einen derzeit aktiven Job handelt.
Die cat Befehl wird durch ‘-’ gekennzeichnet , was bedeutet, dass er zum aktiven Job wird, wenn ping Befehl wird beendet.
Alle Jobs entfernen
Verwenden Sie den folgenden Befehl, um alle Jobs aus der Jobtabelle zu entfernen:
disown -a
Entfernen Sie bestimmte Jobs
Wenn Sie einen bestimmten Job aus der Jobtabelle entfernen möchten, verwenden Sie den disown Befehl mit der entsprechenden Job-ID. Die Job-ID ist in Klammern in der Job-Tabelle aufgeführt:
Wenn wir in unserem Beispiel den ping entfernen möchten Befehl, müssen wir den disown verwenden Befehl auf Job 2:
disown %2
Verwenden des disown Befehl ohne Optionen oder Job-IDs entfernt den letzten Job aus der Job-Tabelle:
Aktuell ausgeführte Jobs entfernen
Verwenden Sie den folgenden Befehl, um nur die derzeit ausgeführten Jobs zu entfernen:
disown -r In unserem Beispiel löscht der oben genannte Befehl die Jobtabelle, da beide Jobs gerade im Hintergrund laufen:
Lassen Sie Jobs laufen, nachdem Sie sich abgemeldet haben
Sobald Sie das Terminal Ihres Systems verlassen, werden alle derzeit laufenden Jobs automatisch beendet. Um dies zu verhindern, verwenden Sie disown Befehl mit dem -h Möglichkeit:
disown -h jobID
In unserem Beispiel möchten wir die cat behalten Befehl läuft im Hintergrund. Um zu verhindern, dass es beim Beenden beendet wird, verwenden Sie den folgenden Befehl:
disown -h %1
Nachdem Sie disown verwendet haben Befehl, schließen Sie das Terminal:
exit
Alle Jobs, die Sie verwendet haben, disown -h command on wird weiter ausgeführt.