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.