Startpagina > Procesbeheer > nohup

nohup: Blijven uitvoeren na uitloggen

Een tool die ervoor zorgt dat commando's blijven draaien, zelfs als de terminal wordt gesloten of de SSH-verbinding wordt verbroken. Essentieel voor het uitvoeren van langdurige taken (zoals het starten van een server, grote downloads of batchtaken) op de achtergrond.

Wat is nohup?

nohup staat voor 'No Hang Up' en betekent dat een commando wordt uitgevoerd terwijl het het hang-up signaal (HUP-signaal) negeert. Normaal gesproken wordt een draaiend programma beëindigd wanneer u het terminalvenster sluit, maar nohup voorkomt dit als een schild.

3 Kernconcepten

  • HUP-signaal negeren: Negeert het beëindigingssignaal (SIGHUP) dat door het systeem wordt verzonden wanneer een gebruiker uitlogt, waardoor het proces blijft draaien.
  • nohup.out: Als er geen apart opslagbestand is opgegeven, worden de uitvoerresultaten (uitvoerinhoud) automatisch opgeslagen in het `nohup.out`-bestand.
  • & (Achtergrond): nohup alleen neemt de terminal in beslag. Meestal wordt `&` aan het einde van het commando toegevoegd om het naar de achtergrond te sturen.

Belangrijkste Syntaxis en Opties (Shell)

nohup zelf heeft geen complexe opties. In plaats daarvan wordt het gebruikt in combinatie met het **uit te voeren commando** en **redirection (uitvoerrichting opgeven)**.

1. Basisuitvoeringsconfiguratie

2. Log (uitvoer) Beheer

3. Hulp

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`nohup` Voer het commando uit.

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

Voorbeelden van gebruiksscenario's

De meest gebruikte nohup-patronen in de praktijk.

Meest basale gebruik

nohup ./backup.sh &

Voert een script uit op de achtergrond. De uitvoer wordt verzameld in `nohup.out`.

Logbestandsnaam opgeven (aanbevolen)

nohup python3 app.py > my-app.log 2>&1 &

Slaat logs op in `my-app.log` in plaats van `nohup.out`. `2>&1` betekent dat foutmeldingen ook in hetzelfde bestand worden opgeslagen.

Uitvoeren zonder logs

nohup ./heavy-task.sh > /dev/null 2>&1 &

Als de uitvoer niet nodig is of te veel is en er een risico is dat de schijf vol raakt, wordt de uitvoer naar `/dev/null` gestuurd.

Actieve nohup-processen zoeken

ps -ef | grep app.py

Controleer actieve processen met het `ps`-commando.

Installatie

nohup is een standaard commando dat deel uitmaakt van 'GNU Coreutils' en is al geïnstalleerd op bijna alle Linux-distributies.

Installatie controleren

In de meeste gevallen is er geen aparte installatie nodig. U kunt de installatiestatus controleren met het onderstaande commando.

Versie controleren

nohup --version

Tips & Waarschuwingen

Handige tips

  • Wat als een taak al draait?: Als u nohup bent vergeten en een taak al hebt gestart, kunt u deze pauzeren met `Ctrl+z`, vervolgens naar de achtergrond verplaatsen met `bg` en het `disown -h %1` commando gebruiken om het nohup-effect te bereiken.
  • Hoe te beëindigen: Een proces dat met nohup is gestart, kan niet worden beëindigd met `Ctrl+c`. U moet de PID (proces-ID) vinden met `ps -ef | grep [naam]` en het proces beëindigen met het `kill -9 [PID]` commando.
  • Let op schijfruimte: Als een langlopend programma continu naar `nohup.out` schrijft, kan het bestand enorm groot worden en de server laten crashen. Maak het regelmatig leeg of gebruik `/dev/null`.

gerelateerde commando's

Functional vergelijkbare of vaak samen gebruikte commando's.



Hétzelfde categoriecommando