Tänk om en kritisk process körs på ditt system och tar lång tid. Plötsligt måste du logga ut ur ditt system. Om du loggar ut kommer dina processer att sluta, och du kommer säkert att vilja undvika detta. Om du vill att din pågående process ska fortsättas utan avbrott, behöver du nohup-kommandot.
Nohup (står för ingen hangup) är ett kommando som ignorerar HUP-signalen. Du kanske undrar vad HUP-signalen är., Det är i grunden en signal som levereras till en process när dess tillhörande skal avslutas. Vanligtvis, när vi loggar ut, läggs alla program och processer som körs eller stoppas. Om vi vill fortsätta köra processen även efter utloggning eller frånkoppling från det aktuella skalet kan vi använda nohup-kommandot. Det gör processerna immuna mot HUP-signaler för att göra programmet igång även efter att ha loggat ut. Med nohup behöver du inte längre logga in länge bara för att vänta på att processen ska slutföras.,
i den här artikeln kommer vi att förklara hur du använder nohup-kommandot i olika scenarier i Linux.,använd följande kommando:
för att hitta versionsinformationen för nohup, använd följande kommando:
starta en process med Nohup
om du vill behålla ett kommando eller en process som körs även om du avslutar skalet, använd nohup följt av kommandot för att utföra:
När du kör kommandot ovan kommer all utmatning, tillsammans med felmeddelandena, att läggas till nohup.,ut filen i hemkatalogen eller i den aktuella katalogen. Nu, om skalet är stängt eller du loggar ut, kommer det ovan utförda kommandot inte att avslutas.
omdirigera utmatning till annan fil
som standard läggs utmatningen från nouhup-kommandot till nohup.ur arkivet. För att omdirigera denna utmatning till någon annan fil, använd > redirector operator följt av namnet på den specifika filen. Till exempel har vi använt följande kommando för att spara utdata från nohup-kommandot till en ny fil som heter ”myscript.sh”.
starta en process i bakgrunden med Nohup
för att starta och sätta processen i bakgrunden måste du använda nohup enligt följande:
symbolen& talar om för skalet att köra kommandot i bakgrunden. Det liknar ovanstående nohup-kommando förutom att när sessionen slutar återgår den omedelbart till skalprompten. För att få det tillbaka till framkant, använd kommandot ”FG”.,
utmatningen av alla kommandon du kör kommer att bifogas nohup.ur arkivet. Du kan visa den här filen med kommandot cat nohup i terminalen. Numret 80132 i ovanstående skärmdump indikerar processens identifikationsnummer (PID) för processen som körs i bakgrunden.
starta flera processer i bakgrunden med Nohup
Du kan köra flera kommandon i bakgrunden genom att använda nohup-kommandot. I följande exempel körs mkdir -, ping-och ls-kommandon i bakgrunden genom att använda nohup-kommandot.,
ping-C 1 google.com && ls’> – utmatning.txt
avsluta processen som körs i bakgrunden
för att avsluta en process som körs i bakgrunden, använd kommandot kill enligt följande:
Du hittar PID för en process när du använder nohup med ”&”., Ett annat sätt att hitta PID är genom pgrep-ett kommando. Till exempel, om du har kört Ping-kommandot med nohup, fortsätter det att springa i bakgrunden även om du stänger skalet. Nu i det här fallet, för att hitta PID för en Ping-process som körs i bakgrunden, använd det här kommandot:
det kommer att lista alla processer som är associerade med Ping-kommandot.,
för att avsluta Ping-processen som körs i bakgrunden, använd kommandot kill enligt följande:$ kill -9 80928So, det här var den korta introduktionen av nohup-kommandot i Linux. Nohup-kommandot används för att förhindra att en viktig process avslutas när du loggar ut eller stänger sessionen. Det hjälper mycket när du kör en process, särskilt skript som tar lång tid att slutföra.