logo

nohup-kommando i Linux med eksempler

Hver kommando i Linux starter en prosess på tidspunktet for utførelse, som automatisk avsluttes når terminalen avsluttes. Anta at du kjører programmer over SSH og hvis tilkoblingen faller, vil økten bli avsluttet, alle de utførte prosessene vil stoppe, og du kan møte en stor utilsiktet krise. I slike tilfeller kan kjørekommandoer i bakgrunnen være svært nyttig for brukeren, og det er her nohup kommando kommer inn i bildet. nohup (No Hang Up) er en kommando i Linux-systemer som kjører prosessen selv etter å ha logget ut fra skallet/terminalen.

Nohup kommando

Vanligvis sendes hver prosess i Linux-systemer en SIGHUP (Signal Hang UP) som er ansvarlig for å avslutte prosessen etter stenging/utgang av terminal. Nohup-kommandoen hindrer prosessen i å motta dette signalet ved lukking eller ut av terminalen/skallet. Når en jobb er startet eller utført ved hjelp av nohup-kommandoen, stdin vil ikke være tilgjengelig for brukeren og nohup.out fil brukes som standardfil for standout og stderr . Hvis utdataene fra nohup-kommandoen omdirigeres til en annen fil, nohup.out filen er ikke generert.



Nohup kommandosyntaks

Syntaksen for å bruke Nohup-kommandoen er enkel:

css for fet skrift
nohup command [options] &>
  • `command`> : Spesifiserer kommandoen eller skriptet du vil utføre.
  • `[options]`> : Valgfrie argumenter eller flagg som endrer oppførselen til kommandoen.
  • `&`> : Plassering av et og-tegn (&) på slutten av kommandoen instruerer skallet til å kjøre kommandoen i bakgrunnen.

Jobber med nohup Command

Sjekker versjonen av Nohup

Å sjekke versjonen av Nohup er en enkel prosess. Du kan vanligvis sjekke versjonen av Nohup som er installert på systemet ditt ved å bruke ` --version`> flagg. Bare kjør følgende kommando:



nohup --version>

Produksjon:

Starte en prosess ved hjelp av Nohup

For å starte en prosess med Nohup, setter du bare ønsket kommando forannohup>. For eksempel, hvis du vil utføre et bash-skript med navnetgeekfile.py>ved å bruke Nohup, ville du bruke følgende kommando:



nohup bash geekfile.sh>

Produksjon:

java streng trim

For å omdirigere utdataene til output.txt fil:

nohup bash geekfile.sh>output.txt>

Produksjon:

murer formel

Starte en prosess i bakgrunnen ved å bruke Nohup

For å kjøre kommandoen i bakgrunnen, &' symbolet legges til på slutten av kommandoen. Etter utførelse går den ikke tilbake til shell-ledeteksten etter å ha kjørt kommandoen i bakgrunnen. Den kan bringes tilbake til forgrunnen med fg kommando.

nohup bash geekfile.sh & fg>

Produksjon:

Merk: Tallet innenfor hakeparenteser representerer jobb-ID og tallet ved siden av er prosess-ID .

For å kjøre flere kommandoer i bakgrunnen

nohup-kommandoen kan brukes til å kjøre flere kommandoer i bakgrunnen.

nohup bash -c 'commands'>

Eksempel:

nohup bash -c 'cal && ls'>

Produksjon:

Her vil utdata som standard lagres i nohup.out . For å omdirigere den, skriv inn:

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

Eksempel:

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

Produksjon:

mysql liste alle brukere

nohup Command i Linux – Vanlige spørsmål

Hva er nohup> kommando i Linux, og hva gjør den?

De nohup> kommando står for ingen legg på. Den lar deg kjøre en kommando eller shell-skript på en slik måte at den fortsetter å kjøre selv etter at du logger ut eller lukker terminalen. Dette forhindrer at kommandoen avsluttes når terminaløkten avsluttes.

analysere streng til int

Hvordan bruker jeg nohup> kommando?

Å bruke nohup> , bare sett den foran kommandoen du vil kjøre. For eksempel:

nohup command_to_run &>

De &> symbol på slutten setter kommandoen i bakgrunnen, slik at du kan fortsette å bruke terminalen mens kommandoen kjører.

Hvor gjør nohup> sende utdataene til kommandoen?

Som standard, nohup> omdirigerer både standardutdata (stdout) og standardfeil (stderr) til en fil med navn nohup.out> i gjeldende katalog. Du kan spesifisere en annen utdatafil hvis ønskelig.

Kan jeg bruke nohup> med interaktive kommandoer eller programmer?

Samtidig som nohup> brukes vanligvis med ikke-interaktive kommandoer eller skript, kan du bruke det med interaktive kommandoer. Atferden kan imidlertid være uforutsigbar, spesielt hvis kommandoen forventer input fra brukeren. Det anbefales generelt å unngå å bruke nohup> med interaktive programmer.

Hvordan kan jeg sjekke statusen til en kommando som kjører med nohup> ?

Siden nohup> kjører kommandoen i bakgrunnen, kan du bruke standard Linux-verktøy som ps> eller top> for å sjekke status for prosessen. For eksempel:

ps aux | grep>

Dette vil vise deg informasjon om prosessen, inkludert dens PID (prosess-ID), som du deretter kan bruke til å administrere eller overvåke kommandoen.

Konklusjon

I Linux, når du kjører en kommando, stopper den vanligvis når du lukker terminalen. Men med nohup> , kan du holde den i gang selv etter at du har lukket terminalen. Dette er veldig nyttig, spesielt hvis du kjører kommandoer eksternt og ikke vil at de skal stoppe hvis tilkoblingen din faller.nohup>fungerer ved å skjerme kommandoen din mot signaler som normalt stopper den. Du bare legger tilnohup>før din kommando, og den fortsetter. Du kan også sende kommandoens utdata til en fil. Bare husk at det er best for ikke-interaktive oppgaver, og du kan sjekke kommandoens status ved å bruke verktøy somps>. Så,nohup>er som et sikkerhetsnett for kommandoene dine, som sikrer at de fortsetter å tulle med selv når du ikke ser på.