Hvordan kjøre Linux -kommandoer i bakgrunnen

Hvordan kjøre Linux -kommandoer i bakgrunnen

Å kjøre Linux -kommandoer i bakgrunnen lar brukeren fortsette å utføre andre oppgaver mens kommandoen fremdeles kjører. For å kjøre en kommando i bakgrunnen er det flere måter; En av de enkle metodene er ved å legge til en Ampersand (&) På slutten av kommandolinjen.

Når en prosess er satt til å kjøre i bakgrunnen, kan vi få tilgang til den ved hjelp av arbeidsplasser kommando. Denne artikkelen inneholder alle forskjellige måter å kjøre en kommando i bakgrunnen.

Liste over forskjellige måter å kjøre en bakgrunnsprosess er som følger:

    • Legge til Ampersand (&) tegn
    • Bruke BG -kommandoen
    • Bruke nohup -kommandoen
    • Bruke Disown -kommandoen
    • Bruke TMUX -verktøyet

Følgende er detaljene i alle metoder for å kjøre en bakgrunnsprosess:

1: Bruke Ampersand (&) -tegnet

I Linux Ampersand (&) er en skalloperatør som sender en kommando i bakgrunnen som en egen prosess. Ved å kombinere ampersand (&) til en kommando, vil den bli utført som en bakgrunnsprosess, slik at skallet kan fortsette å behandle andre kommandoer umiddelbart.

Syntaks for en bakgrunnsprosess ved bruk av Ampersand -tegn:

$ [Kommando] &


Ampersand -symbolet blir alltid lagt til på slutten av kommandoen med et enkelt mellomrom mellom “&” og siste karakter av kommandoen.

Lag for eksempel en søvnprosess i 40 sekunder.

$ søvn 40


Som vi kan se, kjører terminalen søvnkommandoen og lar oss ikke utføre noen annen oppgave.


Trykk nå “Ctrl + z” For å stoppe denne prosessen. Deretter kjører vi den samme søvnkommandoen denne gangen, men ved å bruke en ampersand -operatør med den vil den sette den opp i bakgrunnen.

$ søvn 40 og



Nå er denne prosessen i bakgrunnen. For å liste opp bakgrunnsbruk av prosessen:

$ jobber -l



Nå drep denne bakgrunnsprosessen ved å bruke:

$ Kill -9 [Job -ID]


For eksempel for å drepe den nåværende løpende søvnprosessbruken:

$ Kill -9 6149


Nå blir søvnprosessen drept for å bekrefte listen over bakgrunnsoppkjøringsprosessen ved hjelp av.

$ jobber -l



Her er et annet eksempel på å bruke & ampersand Tegnet er med Gedit -kommandoen.

Hvis vi for eksempel åpner Gedit Text Editor direkte ved hjelp av terminalen, vil vi være nødt til å bruke skallet til annet arbeid, ellers må vi stoppe den nåværende prosessen først.

$ gedit


Ved å bruke kommandoen ovenfor vil du åpne tekstredigereren som vil åpne den foran terminalen.


Men etter å ha brukt "&" på slutten av GEDIT -kommandoen, er skallet fritt til å bruke til andre prosesser:

$ gedit &


2: Bruke 'BG' -kommandoen

BG -kommandoen er den andre måten å kjøre kommandoer i bakgrunnen. Denne kommandoen lar brukeren fortsette å jobbe i terminalen mens prosessen kjører i bakgrunnen, og frigjør terminalen for andre oppgaver. BG -kommandoen brukes til en langvarig bakgrunnsprosess som til og med kjører hvis brukeren logger ut.

Som et ampersandskilt trenger vi ikke å bekymre oss for å legge det til kommandoen hver gang bare send BG -tekst til terminalen. Det vil begynne å kjøre prosessen i bakgrunnen og frigjøre terminalen for fremtidig bruk.

La oss for eksempel bruke det forrige eksemplet og sende søvnkommandoen ved å bruke:

$ søvn 40



Nå kjører prosessen og terminalen er ikke tilgjengelig for bruk. For å bruke BG -kommandoen og sende denne prosessen i bakgrunnen, må vi først stoppe gjeldende utførelsesprosess ved å trykke på “Ctrl+ z” og utføre denne kommandoen:

$ BG


Etter å ha sendt BG -kommandoen begynte søvnprosessen å fortsette i bakgrunnen. Vi kan se en ampersand "&" på slutten, noe som indikerer at den nåværende prosessen er i bakgrunnen som kjører.


For å sjekke bakgrunnsprosessen Kjør Jobs -kommandoen:

$ jobber -l



For å sjekke kommandoen som kjører i bakgrunnsbruk:

$ fg



For å drepe den nåværende prosessen, bruk jobb -IDen med Kill Command. For å sjekke jobb -ID, kjør:

$ jobber -l



Etter å ha kjent jobbene Id Kill Process ved bruk av:

$ Kill -9 [Job -ID]


For eksempel å drepe gjeldende løpende søvnprosessbruk:

$ Kill -9 6584


For å bekrefte om prosessen blir drept eller ikke igjen kjører Jobs -kommandoen:

$ jobber -l


Vi kan se søvnprosessen ikke lenger kjører i bakgrunnen:

3: Bruke nohup -kommandoen

Nohup -kommandoen er tredje på vår liste over løpende bakgrunnsprosesser i Linux. Kommandoen står for “No Dang Up” og brukes til å forhindre at prosessen blir avsluttet til terminaløkten slutter. Når en prosess utføres ved hjelp av NOHUP, fortsetter den å kjøre selv om brukeren logger ut, og utgangen fra prosessen blir omdirigert til en navn som er navngitt “Nohup.ute".

Nohup -kommandoen til Ping Google kontinuerlig i bakgrunnen er og output blir omdirigert til en tekstfil Googleping.tekst:

$ nohup ping google.com> Googleping.tekst &


Etter å ha skrevet denne kommandoen kan vi se at terminalen er gratis og en bakgrunnsprosess for kontinuerlig å pinge Google kjører i bakgrunnen.


For å få tilgang til loggfilen, kan vi bruke følgende kommando:

$ CAT Googleping.tekst



Loggfilen kan også nås ved hjelp av GUI fra startskjermen.

4: Bruke Disown -kommandoen

Disown -kommandoen fjerner en prosess fra skallene og kjører den i bakgrunnen. Når en prosess blir benektet, er den ikke lenger assosiert med terminalen og fortsetter å løpe selv etter at brukeren logger ut eller lukker terminalen.

Tidligere har vi brukt Ampersand “&” -kommandoen som sender prosessen i bakgrunnen etter utførelsen, men når vi lukker skallet blir prosessen avsluttet. For å bli kvitt denne Disown -kommandoen er det der.

Disown -kommandoen kan ikke fungere uavhengig, men minimum en prosess må kjøres i bakgrunnen.

Kjør kommandoen nedenfor med en Og Ampersand tegn som vil sende kommandoen din til bakgrunn.

$ ping google.com> Googleping.tekst &


Etter at filen er opprettet, kan vi liste den ved hjelp av Jobs -kommandoen.


Nå kjører prosessen vår i bakgrunnen for å løsne den fra terminalbruk:

$ DELOWN



Kjør Jobs -kommandoen igjen for å bekrefte at prosessen er løsrevet fra terminalen:

$ jobber -l


Ettersom prosessen vår for øyeblikket kjører, men den ikke lenger vises inne i terminalen:


For å bekrefte prosessen vår, kan vi bruke CAT -kommandoen for å få tilgang til den pingfilen:

$ CAT Googleping.tekst



Vi har løsnet denne prosessen fra terminalen, men den kjører fremdeles i bakgrunnen.

5: Bruke TMUX -verktøyet

TMUX er et slags terminal multiplexer -verktøy. Ved hjelp av TMUX kan vi lage flere terminaløkter i et enkelt skall. Det gir muligheten til å kjøre prosesser i bakgrunnen.

For å kjøre en bakgrunnsprosess i TMUX, kan du opprette en ny økt og deretter løsne fra den ved hjelp av tastekombinasjonen CTRL-B etterfulgt av D.

For å installere TMUX -verktøyet på Ubuntu og Linux Mint -bruk:

$ sudo apt install tmux



Å installere på Fedora Run:

$ sudo dnf installer tmux


Å installere på Arch Linux Run:

$ sudo pacman -s tmux


Kjør nå TMUX -kommandoen for å åpne en ny terminal:

$ tmux


For å lage en ny TMUX -øktbruk:

$ tmux new -s [session_id]


For å liste opp all TMUX -øktbruk:

$ tmux ls


For å drepe en TMUX -øktbrukskommando som:

$ tmux kill -session -t [session_id]


For eksempel å drepe “0” TMUX Session Bruk:

$ tmux Kill -Session -t 0


Her listet vi opp den nåværende kjørende tmux -aktive økten og drepte den ved hjelp av kommandoen ovenfor:


    • Å løsrive fra TMUX -øktpressen “Ctrl+B+D”.
    • For å få en liste over alle kommandoer trykk “Ctrl+B+?”.
    • Å skifte mellom TMUX Windows Press “Ctrl+B+O”.

For å dele TMUX -terminalen vertikalt, trykk “Ctrl+B” og skriv %.


For å komme tilbake på hovedterminalen fra tmux bruk:

$ exit

Konklusjon

Kjørende bakgrunnsapplikasjoner i Linux er en kraftig funksjon som lar brukerne holde langvarige oppgaver i gang selv etter å ha logget ut av terminalen eller lukker vinduet. Vanligvis en Ampersand & tegn eller BG Kommando brukes til å sende en prosess i bakgrunnen. Vi kan imidlertid også bruke NOHUP eller Nowown kommando for å løsne en prosess fra terminalen. Endelig kan vi bruke TMUX -verktøyet For å lage flere terminaler og kjøre bakgrunnsprosesser uten å forstyrre terminalen.