Startpagina > Procesbeheer > disown

disown: Afstand doen van eigendom van een lopende taak (als je nohup vergeten bent)

Verwijdert een reeds lopende taak uit de takenlijst van de huidige shell, zodat deze niet wordt beëindigd (SIGHUP) wanneer de terminal wordt gesloten of wanneer je uitlogt. Wordt meestal gebruikt wanneer je per ongeluk een commando hebt uitgevoerd zonder nohup.

Wat is disown?

Een shell zoals Bash stuurt een 'stop!' signaal (SIGHUP) naar alle taken die het beheert wanneer de terminal wordt gesloten. `disown` verwijdert een specifieke taak uit de beheerde lijst van de shell, zodat deze niet samen met de shell wordt beëindigd.

Wanneer gebruik je het?

  • Als je nohup bent vergeten: Gebruik dit wanneer je een langlopende taak hebt gestart, maar moet vertrekken en de taak niet mag stoppen.
  • Werkstroom: Gebruik het in de volgorde: Pauzeren tijdens uitvoering (Ctrl+z) -> Naar achtergrond verplaatsen (bg) -> Afstand doen van eigendom (disown).
  • Ingebouwd shell-commando: Dit is geen apart programma, maar een ingebouwde functie van de shell (Bash, Zsh, enz.).

Belangrijkste opties (Shell)

Indien gebruikt zonder opties, is de meest recente taak het doel. Om een specifieke taak aan te geven, gebruik je het 'Taaknummer (Job ID)'.

1. Basisgebruik en doeltoewijzing

2. Status behouden

3. Help

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`disown` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Voorbeelden van gebruiksscenario's (verplicht patroon)

disown wordt zelden alleen gebruikt, maar eerder in combinatie met `Ctrl+z` en `bg`.

Situatie: Backup gestart zonder nohup!

`backup.sh` is gewoon gestart en duurt 1 uur. Als de terminal wordt gesloten, stopt de backup ook. Dit is hoe je het redt.

3 stappen om te redden (Stap-voor-stap)

Voer de toetsen in de onderstaande volgorde in.

  • 1. Druk `Ctrl + z` in de lopende terminal om de taak tijdelijk te pauzeren.
  • 2. Voer het `bg`-commando in om de gepauzeerde taak op de achtergrond te hervatten.
  • 3. Voer het `disown`-commando in om de verbinding met de shell te verbreken.

Specifieke taak selecteren en loskoppelen

disown %2

Koppel alleen taaknummer 2 los, zoals gecontroleerd met `jobs`.

In de lijst laten staan (-h)

disown -h %1

Zorgt ervoor dat de taak zichtbaar blijft bij het uitvoeren van `jobs`, maar niet stopt wanneer de terminal wordt gesloten.

Installatie

disown is een ingebouwd commando in shells zoals Bash en Zsh, dus er is geen aparte installatie nodig.

Geen installatie nodig

Als je een Linux-terminal gebruikt, is het al geïnstalleerd.

Tips & Aandachtspunten

Handige tips

  • Job ID vs PID: `disown` gebruikt geen Proces ID (PID, bijv. 1234), maar het taaknummer van de shell (Job ID, bijv. %1). Vergeet niet de `%` toe te voegen.
  • Output niet controleerbaar: `nohup` creëert een `nohup.out`-bestand, maar `disown` koppelt een reeds lopende taak los, waardoor de output verloren kan gaan. Het behouden van de output vereist complexere methoden, zoals het gebruik van `gdb`.
  • Controleer de methode: Na disown verdwijnt de taak uit de `jobs`-lijst (tenzij een optie is gebruikt). Om te controleren of het proces nog actief is, moet je `ps -ef | grep commando` gebruiken.

gerelateerde commando's

Functional vergelijkbare of vaak samen gebruikte commando's.



Hétzelfde categoriecommando