logo

nohup kommando i Linux med exempel

Varje kommando i Linux startar en process vid tidpunkten för dess körning, som automatiskt avslutas när terminalen avslutas. Anta att du kör program över SSH och om anslutningen avbryts kommer sessionen att avslutas, alla körda processer kommer att stoppas och du kan möta en enorm oavsiktlig kris. I sådana fall kan köra kommandon i bakgrunden vara till stor hjälp för användaren och det är här nohup kommando kommer in i bilden. nohup (ingen häng på) är ett kommando i Linux-system som kör processen även efter att du har loggat ut från skalet/terminalen.

Nohup kommando

Vanligtvis skickas varje process i Linux-system en SIGHUP (Signal Häng UPP) som ansvarar för att avsluta processen efter stängning/avsluta terminalen. Nohup-kommandot hindrar processen från att ta emot denna signal när terminalen/skalet stängs eller lämnas. När ett jobb har startat eller körts med kommandot nohup, stdin kommer inte att vara tillgänglig för användaren och nohup.ut fil används som standardfil för stdout och stderr . Om utdata från nohup-kommandot omdirigeras till någon annan fil, nohup.ut filen genereras inte.



Nohup kommandosyntax

Syntaxen för att använda Nohup-kommandot är enkel:

serie i postgres
nohup command [options] &>
  • `command`> : Anger kommandot eller skriptet som du vill köra.
  • `[options]`> : Valfria argument eller flaggor som ändrar kommandots beteende.
  • `&`> : Genom att placera ett et-tecken (&) i slutet av kommandot instrueras skalet att köra kommandot i bakgrunden.

Arbetar med nohup Command

Kontrollerar versionen av Nohup

Att kontrollera versionen av Nohup är en enkel process. Du kan vanligtvis kontrollera vilken version av Nohup som är installerad på ditt system genom att använda ` --version`> flagga. Kör helt enkelt följande kommando:



nohup --version>

Produktion:

Starta en process med Nohup

För att starta en process med Nohup, lägg helt enkelt det önskade kommandot mednohup>. Till exempel, om du vill köra ett bash-skript med namnetgeekfile.py>med Nohup skulle du använda följande kommando:



nohup bash geekfile.sh>

Produktion:

definiera dator

För att omdirigera utgången till output.txt fil:

nohup bash geekfile.sh>output.txt>

Produktion:

linux mint cinnamon vs mate

Starta en process i bakgrunden med Nohup

För att köra kommandot i bakgrunden, &' symbolen läggs till i slutet av kommandot. Efter exekvering återgår den inte till skalkommandotolken efter att ha kört kommandot i bakgrunden. Det kan föras tillbaka till förgrunden med fg kommando.

nohup bash geekfile.sh & fg>

Produktion:

Notera: Siffran inom hakparenteser representerar jobb id och numret bredvid den är process-id .

För att köra flera kommandon i bakgrunden

kommandot nohup kan användas för att köra flera kommandon i bakgrunden.

nohup bash -c 'commands'>

Exempel:

nohup bash -c 'cal && ls'>

Produktion:

Här kommer utdata som standard att lagras i nohup.ut . För att omdirigera den, skriv:

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

Exempel:

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

Produktion:

vad gör ravel i python

nohup Command i Linux – Vanliga frågor

Vad är nohup> kommando i Linux, och vad gör det?

De nohup> kommandot står för ingen lägga på. Det låter dig köra ett kommando eller skalskript på ett sådant sätt att det fortsätter att köras även efter att du loggat ut eller stänger terminalen. Detta förhindrar att kommandot avslutas när terminalsessionen avslutas.

vilka månader finns i Q3

Hur använder jag nohup> kommando?

Att använda nohup> , lägg det helt enkelt framför kommandot du vill köra. Till exempel:

nohup command_to_run &>

De &> symbolen i slutet placerar kommandot i bakgrunden, så att du kan fortsätta använda terminalen medan kommandot körs.

Var nohup> skicka utdata från kommandot?

Som standard, nohup> omdirigerar både standardutdata (stdout) och standardfel (stderr) till en fil med namnet nohup.out> i den aktuella katalogen. Du kan ange en annan utdatafil om så önskas.

Kan jag använda nohup> med interaktiva kommandon eller program?

Medan nohup> används vanligtvis med icke-interaktiva kommandon eller skript, kan du använda det med interaktiva kommandon. Men beteendet kan vara oförutsägbart, särskilt om kommandot förväntar sig input från användaren. Det rekommenderas generellt att undvika att använda nohup> med interaktiva program.

Hur kan jag kontrollera statusen för ett kommando som körs med nohup> ?

Eftersom nohup> kör kommandot i bakgrunden kan du använda vanliga Linux-verktyg som ps> eller top> för att kontrollera processens status. Till exempel:

ps aux | grep>

Detta kommer att visa dig information om processen, inklusive dess PID (Process ID), som du sedan kan använda för att hantera eller övervaka kommandot.

Slutsats

I Linux, när du kör ett kommando, slutar det vanligtvis när du stänger terminalen. Men med nohup> , kan du hålla den igång även efter att du har stängt terminalen. Det här är väldigt praktiskt, speciellt om du kör kommandon på distans och inte vill att de ska sluta om din anslutning avbryts.nohup>fungerar genom att skydda ditt kommando från signaler som normalt skulle stoppa det. Du lägger bara tillnohup>före ditt kommando, och det fortsätter. Du kan också skicka kommandots utdata till en fil. Kom bara ihåg att det är bäst för icke-interaktiva uppgifter, och du kan kontrollera ditt kommandos status med hjälp av verktyg somps>. Så,nohup>är som ett skyddsnät för dina kommandon, vilket säkerställer att de fortsätter att tjafsa med även när du inte tittar.