logo

nohup Commando in Linux met voorbeelden

Elke opdracht in Linux start een proces op het moment van uitvoering, dat automatisch wordt beëindigd bij het verlaten van de terminal. Stel dat u programma's uitvoert via SSH en als de verbinding wegvalt, wordt de sessie beëindigd, worden alle uitgevoerde processen stopgezet en kunt u te maken krijgen met een enorme, accidentele crisis. In dergelijke gevallen kan het uitvoeren van opdrachten op de achtergrond zeer nuttig zijn voor de gebruiker, en dit is waar nohup-opdracht komt in beeld. nohup (niet ophangen) is een opdracht in Linux-systemen die het proces uitvoert, zelfs nadat u bent uitgelogd bij de shell/terminal.

Nohup-commando

Normaal gesproken wordt elk proces in Linux-systemen een SIGHUP (signaal ophangen) die verantwoordelijk is voor het beëindigen van het proces na het sluiten/verlaten van de terminal. Het Nohup-commando voorkomt dat het proces dit signaal ontvangt bij het sluiten of verlaten van de terminal/shell. Zodra een taak is gestart of uitgevoerd met de opdracht nohup, stdin zal niet beschikbaar zijn voor de gebruiker en nohup.uit bestand wordt gebruikt als het standaardbestand voor stoer En stderr . Als de uitvoer van het nohup-commando wordt omgeleid naar een ander bestand, nohup.uit bestand wordt niet gegenereerd.



Nohup-opdrachtsyntaxis

De syntaxis voor het gebruik van de Nohup-opdracht is eenvoudig:

Java-serverpagina's
nohup command [options] &>
  • `command`> : specificeert de opdracht of het script dat u wilt uitvoeren.
  • `[options]`> : Optionele argumenten of vlaggen die het gedrag van de opdracht wijzigen.
  • `&`> : Door een ampersand (&) aan het einde van de opdracht te plaatsen, krijgt de shell de opdracht om de opdracht op de achtergrond uit te voeren.

Werken met het nohup-commando

De versie van Nohup controleren

Het controleren van de versie van Nohup is een eenvoudig proces. Normaal gesproken kunt u de versie van Nohup die op uw systeem is geïnstalleerd controleren met behulp van de ` --version`> vlag. Voer eenvoudig de volgende opdracht uit:



nohup --version>

Uitgang:

Een proces starten met Nohup

Om een ​​proces met Nohup te starten, voegt u eenvoudigweg de gewenste opdracht toenohup>. Als u bijvoorbeeld een bash-script met de naamgeekfile.py>als u Nohup gebruikt, gebruikt u de volgende opdracht:



nohup bash geekfile.sh>

Uitgang:

Java-einde

Om de uitvoer om te leiden naar de uitvoer.txt bestand:

nohup bash geekfile.sh>uitvoer.txt>

Uitgang:

zoekmachine en voorbeelden

Een proces op de achtergrond starten met Nohup

Om de opdracht op de achtergrond uit te voeren, moet de ‘ &’ symbool wordt toegevoegd aan het einde van de opdracht. Na het uitvoeren keert het niet terug naar de shell-opdrachtprompt nadat de opdracht op de achtergrond is uitgevoerd. Het kan weer naar de voorgrond worden gebracht met de fg commando.

nohup bash geekfile.sh & fg>

Uitgang:

Opmerking: Het getal tussen vierkante haakjes vertegenwoordigt de baan-id en het nummer ernaast is de proces-id .

Om meerdere opdrachten op de achtergrond uit te voeren

De nohup-opdracht kan worden gebruikt om meerdere opdrachten op de achtergrond uit te voeren.

nohup bash -c 'commands'>

Voorbeeld:

nohup bash -c 'cal && ls'>

Uitgang:

Hier wordt de uitvoer standaard opgeslagen in nohup.uit . Om het om te leiden, typt u:

nohup bash -c 'commands'>bestandsnaam.txt>

Voorbeeld:

nohup bash -c 'cal && ls'>uitvoer.txt>

Uitgang:

overerving in c++

nohup Commando in Linux – Veelgestelde vragen

Wat is de nohup> commando in Linux, en wat doet het?

De nohup> commando staat voor niet ophangen. Hiermee kunt u een opdracht of shellscript zo uitvoeren dat het blijft werken, zelfs nadat u zich hebt afgemeld of de terminal hebt gesloten. Dit voorkomt dat de opdracht wordt beëindigd wanneer de terminalsessie eindigt.

een voorbeeld van een open source besturingssysteem is

Hoe gebruik ik de nohup> commando?

Gebruiken nohup> , plaats het eenvoudigweg vóór de opdracht die u wilt uitvoeren. Bijvoorbeeld:

nohup command_to_run &>

De &> -symbool aan het einde plaatst de opdracht op de achtergrond, zodat u de terminal kunt blijven gebruiken terwijl de opdracht wordt uitgevoerd.

Waar doet nohup> de uitvoer van het commando verzenden?

Standaard, nohup> leidt zowel de standaarduitvoer (stdout) als de standaardfout (stderr) om naar een bestand met de naam nohup.out> in de huidige map. Indien gewenst kunt u een ander uitvoerbestand opgeven.

Kan ik gebruiken nohup> met interactieve commando's of programma's?

Terwijl nohup> wordt doorgaans gebruikt met niet-interactieve opdrachten of scripts, u kunt het gebruiken met interactieve opdrachten. Het gedrag kan echter onvoorspelbaar zijn, vooral als de opdracht invoer van de gebruiker verwacht. Het wordt over het algemeen aanbevolen om het gebruik ervan te vermijden nohup> met interactieve programma's.

Hoe kan ik de status controleren van een opdracht die wordt uitgevoerd met nohup> ?

Sinds nohup> voert de opdracht op de achtergrond uit, u kunt standaard Linux-tools gebruiken, zoals ps> of top> om de status van het proces te controleren. Bijvoorbeeld:

ps aux | grep>

Hiermee krijgt u informatie over het proces te zien, inclusief de PID (Process ID), die u vervolgens kunt gebruiken om de opdracht te beheren of te controleren.

Conclusie

Wanneer u in Linux een opdracht uitvoert, stopt deze meestal wanneer u de terminal sluit. Maar met nohup> , je kunt het draaiende houden, zelfs nadat je de terminal hebt gesloten. Dit is superhandig, vooral als je op afstand opdrachten uitvoert en niet wilt dat deze stoppen als je verbinding wegvalt.nohup>werkt door uw commando af te schermen tegen signalen die het normaal gesproken zouden tegenhouden. Je voegt gewoon toenohup>vóór uw bevel, en het blijft doorgaan. U kunt de uitvoer van de opdracht ook naar een bestand verzenden. Vergeet niet dat dit het beste is voor niet-interactieve taken, en dat u de status van uw opdracht kunt controleren met behulp van tools zoalsps>. Dus,nohup>is als een vangnet voor uw commando's en zorgt ervoor dat ze blijven sjouwen, zelfs als u niet kijkt.