Hvordan bruke Nohup i Linux

Hvordan bruke Nohup i Linux
Tenk om en kritisk prosess kjører på systemet ditt og tar lang tid. Plutselig må du logge ut av systemet ditt. Hvis du logger ut, vil prosessene dine stoppe, og du vil helt sikkert ønske å unngå dette. Hvis du vil at løpsprosessen skal videreføres uten avbrudd, trenger du NOHUP -kommando.

Nohup (står for No Hangup) er en kommando som ignorerer HUP -signalet. Du lurer kanskje på hva HUP -signalet er. Det er i utgangspunktet et signal som leveres til en prosess når det tilknyttede skallet avsluttes. Vanligvis, når vi logger ut, er alle løpsprogrammene og prosessene hangup eller stoppet. Hvis vi ønsker å fortsette å kjøre prosessen selv etter innlogging eller frakobling fra det nåværende skallet, kan vi bruke nohup -kommandoen. Det gjør prosessene immun mot HUP -signaler for å få programmet til å kjøre selv etter logging. Med Nohup trenger du ikke lenger å logge inn i lang tid bare for å vente på at prosessen skal fullføres.

I denne artikkelen vil vi forklare hvordan du bruker nohup -kommandoen i forskjellige scenarier i Linux.

NOHUP -kommando -syntaks

For å bruke nohup -kommandoen, er syntaks:

$ nohup -kommando argumenter

eller

$ NOHUP -alternativer

For å finne hjelpen angående nohup -kommandoen, bruk følgende kommando:

$ NOHUP -HELP

For å finne versjonsinformasjonen til Nohup, bruk følgende kommando:

$ NOHUP -Versjon

Start en prosess med Nohup

Hvis du vil holde en kommando eller prosess i gang selv om du forlater skallet, bruk nohup etterfulgt av kommandoen for å utføre:

$ nohup -kommando

Når du har kjørt kommandoen ovenfor, vil all utdata, sammen med feilmeldingene, bli lagt til NOHUP.ut -filen i hjemmekatalogen eller i den gjeldende katalogen. Nå, hvis skallet er lukket eller du logger ut, vil ikke ovennevnte kommando avsluttes.

Omdirigere utdata til forskjellige filer

Som standard legges output fra nouhup -kommandoen til NOHUP.ut fil. For å omdirigere denne utdata til en annen fil, bruk> omdirigeringsoperatør etterfulgt av navnet på den spesifikke filen. For eksempel har vi brukt følgende kommando for å lagre utdataene fra Nohup -kommandoen til en ny fil som heter “MyScript.sh ”.

$ sudo nohup ./mn.sh> myscipt.sh &

Start en prosess i bakgrunnen ved hjelp av nohup

For å starte og sette prosessen i bakgrunnen, må du bruke NOHUP som følger:

$ nohup -kommando og

De Og symbolet ber skallet om å kjøre kommandoen i bakgrunnen. Det ligner på ovennevnte nohup -kommando bortsett fra at når økten avsluttes, kommer den umiddelbart tilbake til skallet. For å bringe det tilbake i forkant, bruk “FG” -kommandoen.

Utgangen til alle kommandoene du utfører vil bli lagt til NOHUP.ut fil. Du kan se denne filen ved hjelp av Cat Nohup -kommandoen i terminalen. Antallet 80132 I ovennevnte skjermbilde indikerer prosessidentifikasjonsnummeret (PID) for prosessen som kjører i bakgrunnen.

Start flere prosesser i bakgrunnen ved hjelp av nohup

Du kan kjøre flere kommandoer i bakgrunnen ved å bruke nohup -kommandoen. I det følgende eksemplet blir Mkdir, Ping og LS -kommandoer utført i bakgrunnen ved å bruke NOHUP -kommandoen.

$ NOHUP BASH -C 'MKDIR FILES &&
Ping -C 1 Google.com && ls '> output.tekst

Avslutte prosessen som kjører i bakgrunnen

For å avslutte en prosess som kjører i bakgrunnen, bruk Kill -kommandoen som følger:

$ Kill -9 PID

Du finner PID i en prosess når du bruker NOHUP med “&”. En annen måte å finne PID er gjennom PGREP -A -kommandoen. For eksempel, hvis du har kjørt Ping -kommandoen med Nohup, vil den fortsette å løpe i bakgrunnen selv om du lukker skallet. Nå i dette tilfellet, for å finne PID -en i en pingprosess som kjører i bakgrunnen, bruk denne kommandoen:

$ pgrep -a ping

Den vil liste opp alle prosessene tilknyttet Ping -kommandoen.

For å avslutte pingprosessen som kjører i bakgrunnen, bruk Kill Command som følger: $ Kill -9 80928SO, dette var den korte introduksjonen av Nohup -kommandoen i Linux. Nohup -kommandoen brukes til å forhindre at en viktig prosess blir avsluttet når du logger ut eller lukker økten. Det hjelper mye når du kjører en prosess, spesielt skript som tar lang tid å fullføre.