Det er mange kommandoer tilgjengelig på Linux-systemer. Det er noen som du bruker flere ganger om dagen, og det er andre som vanligvis er reservert for spesielle brukstilfeller. Nohup er en slik kommando. Du vil ikke bruke det hver dag, men du vil være takknemlig, den er rundt når du trenger den.

Hva er Nohup?

Nohup er kort for "No Hangups." Det er ikke en kommando du kjører av seg selv. Nohup er en tilleggskommando som forteller Linux-systemet ikke å stoppe en annen kommando når den er startet. Det betyr at det fortsetter å løpe til det er gjort, selv om brukeren som startet det logger ut. Syntaxen for nohup er enkel og ser noe ut som dette:

 nohup sh din-script.sh & 

Legg merke til "&" på slutten av kommandoen. Det flytter kommandoen til bakgrunnen og frigjør terminalen du jobber med.

Nohup fungerer med omtrent hvilken som helst kommando du kjører i terminalen. Den kan kjøres med tilpassede skript, så vel som standard systemkommandoer og kommandolinjeverktøy.

Nohup.out

Fordi nohup kan fortsette å løpe uavhengig av brukeren som startet den, behøver kommandoen et sted å sende ut eventuelle meldinger eller feil. Siden det ikke er en terminal for å knytte seg til det, logger nohup alt til en utdatafil, nohup.out.

Som standard ligger den filen i hvilken katalog du startet kommandoen i. Nohup.out er noe unikt fordi den inneholder både standardutgang og feilutgang sammen. Nohup omdirigerer begge til samme fil som standard.

Du trenger ikke nødvendigvis å bruke nohup.out, skjønt. Det er bare standard. Du kan angi en egendefinert utgang når du kjører nohup og plasserer den i en egendefinert plassering.

 nohup sh din-script.sh> /path/to/custom.out & 

Den tilpassede utdata inneholder nøyaktig de samme dataene som standard nohup.out-filen ville.

Forskjeller med Daemons

På dette punktet lurer du sikkert på hva som setter nohup bortsett fra en demonisert prosess. Tross alt synes de begge å tjene den relativt samme hensikten, men egentlig ikke. Daemoner løper kontinuerlig i bakgrunnen. De er best reservert for prosesser som du ikke vil noen gang gå ut, som servere. De krever mer arbeid å programmere også, så de er ikke best for enkle engangsskript.

Nohup er for engangsbruk. Tenk på et skript som vil ta lang tid å løpe, men vil til slutt ende opp. Kanskje det er en lang og komplisert oppgave som du kjører hver nå, og det tar timer å fullføre. Du vil ikke la en terminal være åpen eller en bruker er logget inn, så du bruker nohup for å holde den i gang i bakgrunnen. Som en tilleggsbonus logger det automatisk alt for deg.

Du kan se at nohup ikke er et dagligdags verktøy, men det kan være veldig nyttig for den rette oppgaven. Det faller et sted mellom et vanlig kort skript og en kontinuerlig løpende demon. Det hjelper deg å ta mer av en hands-off tilnærming til lengre skript som du kanskje har regelmessig bortkastet tid barnevakt.