nohup
kommando utfører et annet program som er angitt som argument, og ignorerer alle SIGHUP
(legg på) signaler. SIGHUP
er et signal som sendes til en prosess når det kontrollerende terminalen er stengt.
Vanligvis, når du kjører et program over SSH, hvis tilkoblingen din synker eller du logge ut, og sesjonen er avsluttet, og alle prosesser som kjøres fra terminalen vil stoppe. Dette er hvor nohup
– kommandoen kommer i hendig., Det ignorerer alle legg på signaler, og prosessen vil fortsette å kjøre.
Hvordan å Bruke Kommandoen nohup #
syntaks for nohup
– kommandoen er som følger:
nohup COMMAND
– kommandoen godtar ikke noen andre alternativer, bortsett fra standard --help
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 omdirigeringer kommando ut til nohup.out
– filen. Denne filen er opprettet i den gjeldende arbeidsmappen . Hvis brukeren kjører kommandoen ikke har skriverettigheter til arbeidsmappen, filen er opprettet i brukerens hjemmekatalog.
Hvis du logger ut eller lukker terminal, prosessen er ikke avsluttet.,
Kommandoen Kjøres i Bakgrunnen #
ved Hjelp av nohup
i forgrunnen er ikke veldig nyttig, fordi du ikke vil være i stand til å samhandle med skall til kommandoen er fullført.
Å kjøre kommandoen i bakgrunnen , legge til &
symbolet på slutten av kommandoen:
nohup mycommand &
utdata inkluderer shell jobb-ID-en (som er omgitt av klammer) og prosess-ID:
25177
Du kan bruke jobb-ID-en til å ta kommandoen i forgrunnen ved å bruke fg
– kommandoen.,
Hvis for noe grunn du ønsker å avslutte prosessen, bruk kill
kommando etterfulgt av prosess-ID:
kill -9 25132
Omdirigere Utdata til en Fil #
standard nohup
omdirigeringer kommandoen utgang til nohup.out
– filen. Hvis du ønsker å omdirigere utdata til en annen fil, kan du bruke standard shell-omadressering.,
For eksempel, for å redirigere standard ut og standard feilmelding til mycommand.out
du kan bruke:
nohup mycommand > mycommand.out 2>&1 &
for Å redirigere standard ut og standard feilmelding til forskjellige filer:
nohup mycommand > mycommand.out 2> mycommand.err &
Alternativer #
Det er flere alternative programmer som du kan bruke til å unngå en kommando for å være avsluttet når du lukk terminal eller blir frakoblet.,
– Skjermen #
Skjerm eller GNU-Skjermen er en terminal multiplexer program som lar deg starte en skjerm session og åpne en rekke vinduer (virtuelle terminaler) inne i den økten. Prosesser som kjører på Skjermen vil fortsette å kjøre når vinduet er ikke synlig selv om du blir frakoblet.
Tmux #
Tmux er et moderne alternativ til GNU-skjermen. Med Tmux, kan du også opprette en økt og åpne flere vinduer inne på at økt. Tmux økter er vedvarende, noe som betyr at programmer som kjører i Tmux vil fortsette å kjøre selv om du lukk terminal.,
Disown #
disown
er en shell-built-in som fjerner en shell jobb fra shell jobb kontroll. I motsetning til nohup
, kan du bruke disown
på prosesser som kjører for.
Konklusjon #
nohup
kan du forhindre kommandoer fra å være avsluttet når du logger ut eller gå ut av terminalen.