Android

Linux nohup-kommando

Using nohup to allows jobs to continue on logout

Using nohup to allows jobs to continue on logout

Innholdsfortegnelse:

Anonim

nohup kommandoen kjører et annet program spesifisert som sitt argument og ignorerer alle SIGHUP (hangup) signaler. SIGHUP er et signal som sendes til en prosess når kontrollterminalen er stengt.

Vanligvis, når du kjører et program over SSH, hvis tilkoblingen din faller eller du logger ut, avsluttes økten, og alle prosessene som blir utført fra terminalen vil stoppe. Det er her nohup kommandoen er nyttig. Den ignorerer alle sammenhengssignaler, og prosessen vil fortsette å kjøre.

Slik bruker du nohup-kommandoen

Syntaks for nohup kommandoen er som følger:

nohup COMMAND

Kommandoen godtar ikke andre alternativer, bortsett fra standardhelp og --version .

La oss ta en titt på følgende eksempel:

nohup mycommand

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

nohup kjører mycommand kommandoen i forgrunnen og omdirigerer kommandoutgangen til nohup.out filen. Denne filen er opprettet i gjeldende arbeidskatalog. Hvis brukeren som kjører kommandoen, ikke har skrivetillatelser til arbeidskatalogen, opprettes filen i brukerens hjemmekatalog.

Hvis du logger ut eller lukker terminalen, avsluttes ikke prosessen.

Kjører kommandoen i bakgrunnen

Å bruke nohup i forgrunnen er ikke veldig nyttig fordi du ikke vil kunne samhandle med skallet før kommandoen er fullført.

Hvis du vil kjøre kommandoen i bakgrunnen, legg & symbolet til på slutten av kommandoen:

nohup mycommand &

Utdataene inkluderer skalljobb-ID (omgitt av parenteser) og prosess-ID:

25177

Du kan bruke jobb-IDen til å bringe kommandoen i forgrunnen ved å bruke fg kommandoen.

Hvis du av en eller annen grunn ønsker å avslutte prosessen, bruker du kill kommandoen etterfulgt av prosess-ID:

kill -9 25132

Omdirigerer output til en fil

Som standard viderekobler nohup kommandoutgangen til nohup.out filen. Hvis du vil omdirigere utdataene til en annen fil, bruker du standard shell omdirigering.

For å omdirigere standardutgangen og standardfeilen til mycommand.out , vil du for eksempel bruke:

nohup mycommand > mycommand.out 2>&1 &

Slik omdirigerer du standardutgang og standardfeil til forskjellige filer:

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

Alternatives

Det er flere alternative programmer som du kan bruke for å unngå at en kommando avsluttes når du lukker terminalen eller blir koblet fra.

Skjerm

Screen eller GNU Screen er et terminalmultiplekserprogram som lar deg starte en skjermøkt og åpne et hvilket som helst antall vinduer (virtuelle terminaler) inne i den økten. Prosesser som kjører i skjermbildet vil fortsette å kjøre når vinduet deres ikke er synlig, selv om du blir koblet fra.

Tmux

Tmux er et moderne alternativ til GNU-skjermen. Med Tmux kan du også opprette en økt og åpne flere vinduer i den økten. Tmux økter er vedvarende, noe som betyr at programmer som kjører i Tmux vil fortsette å kjøre selv om du stenger terminalen.

disown

disown er et shell innebygd som fjerner en skalljobb fra skallets jobbkontroll. I motsetning til nohup , kan du også bruke disown på prosesser som kjører.

Konklusjon

nohup lar deg forhindre at kommandoer avsluttes når du logger ut eller går ut av terminalen.

nohup terminal