Linux Nohup Commando

het nohup commando voert een ander programma uit dat als argument is opgegeven en negeert alle SIGHUP (hangup) signalen. SIGHUP is een signaal dat naar een proces wordt verzonden wanneer de controlerende terminal wordt gesloten.

Gewoonlijk, wanneer je een programma draait via SSH, als je verbinding wegvalt of je uitlogt, wordt de sessie beëindigd, en alle processen die vanaf de terminal worden uitgevoerd zullen stoppen. Dit is waar het nohup commando van pas komt., Het negeert alle hangup signalen, en het proces zal blijven lopen.

het gebruik van de nohup-opdracht #

de syntaxis voor de opdracht nohup is als volgt:

nohup COMMAND 

het commando accepteert geen andere opties behalve de standaard --help en --version.,

laten we eens kijken naar het volgende voorbeeld:

nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'

nohup voert het commando mycommand uit op de voorgrond en leidt de uitvoer van het commando om naar de nohup.out bestand. Dit bestand wordt aangemaakt in de huidige werkmap . Als de gebruiker die het commando uitvoert geen schrijfrechten heeft voor de werkmap, wordt het bestand aangemaakt in de persoonlijke map van de gebruiker.

Als u zich afmeldt of de terminal Sluit, wordt het proces niet beëindigd.,

het uitvoeren van het commando op de achtergrond #

met behulp van nohup op de voorgrond is niet erg nuttig omdat u niet in staat zult zijn om met de shell te communiceren totdat het commando is voltooid.

om de opdracht op de achtergrond uit te voeren , voegt u het & symbool toe aan het einde van de opdracht:

nohup mycommand &

De uitvoer bevat de shell-taak-ID (omgeven met haakjes) en proces-ID:

 25177

u kunt de taak-ID gebruiken om het commando op de voorgrond met het commando fg.,

Als u om een of andere reden het proces wilt beëindigen, gebruik dan de opdracht kill gevolgd door de opdracht ID:

kill -9 25132

de uitvoer omleiden naar een bestand #

standaard wordt nohup de uitvoer van de opdracht omgeleid naar de nohup.out bestand. Als je de uitvoer naar een ander bestand wilt omleiden, gebruik dan de standaard shell omleiding.,

bijvoorbeeld, om de standaarduitvoer en standaardfout om te leiden naar de mycommand.out u zou gebruiken:

nohup mycommand > mycommand.out 2>&1 &

om de standaarduitvoer en standaardfout om te leiden naar verschillende bestanden:

nohup mycommand > mycommand.out 2> mycommand.err &

alternatieven #

Er zijn verschillende alternatieven programma ‘ s die u kunt gebruiken om te voorkomen dat een opdracht wordt beëindigd wanneer u de terminal Sluit of de verbinding wordt verbroken.,

scherm #

scherm of GNU-scherm is een terminal multiplexer programma waarmee u een schermsessie kunt starten en een willekeurig aantal vensters (virtuele terminals) in die sessie kunt openen. Processen die in het scherm worden uitgevoerd, blijven draaien wanneer hun venster niet zichtbaar is, zelfs als de verbinding wordt verbroken.

Tmux #

Tmux is een modern alternatief voor het GNU-scherm. Met Tmux kunt u ook een sessie maken en meerdere vensters in die sessie openen. Tmux sessies zijn persistent, wat betekent dat programma ‘ s die draaien in Tmux zullen blijven draaien, zelfs als je de terminal Sluit.,

Disown #

disown is een ingebouwde shell die een shell-taak uit het Taakbeheer van de shell verwijdert. In tegenstelling tot nohup, kunt u disown ook gebruiken bij draaiende processen.

conclusie #

nohup Hiermee kunt u voorkomen dat opdrachten worden beëindigd wanneer u uitlogt of de terminal verlaat.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *