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
- Starte en prosess ved hjelp av Nohup
- Starte en prosess i bakgrunnen ved å bruke Nohup
- For å kjøre flere kommandoer i bakgrunnen
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 navnnohup.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å å brukenohup>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 somps>ellertop>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å.