Forutsetninger:
For å utføre trinnene i denne guiden, trenger du følgende komponenter:
Kjører prosessene fra terminalen
Når du kjører en kommando, gyter prosessene under terminalen. Hvis terminalen er lukket, avsluttes alle de tilhørende prosessene automatisk. I visse situasjoner kan det være upraktisk. For eksempel:
For å takle disse problemene, er det et par alternativer:
Prosessene som kjører i bakgrunnen vil ikke overvelde terminalutgangen. Dessuten er terminalen fritt til å kjøre tilleggskommandoene. For løsrevne prosesser vil de ikke avslutte selv om terminalen er lukket.
Starter prosessene i bakgrunnen
I mange tilfeller kan en kommando ta ganske lang tid å fullføre. Generelt blir brukeren tvunget til å vente til kommandoen er ferdig. Når du for eksempel bruker en tekstredigerer, er skallet utilgjengelig til redaktøren er stengt.
For å demonstrere bruker vi “Ja” -kommandoen:
$ mann ja
Metode 1:
Det er et par måter hvor vi kan sende løpeprosessen til bakgrunnen.
Først stopper vi prosessen uten å avslutte den. For å gjøre det, kjør følgende kommando og trykk “Ctrl + Z”:
$ ja "hei verden"> /dev /null
Kjør nå “BG” -kommandoen for å sende prosessen i bakgrunnen:
$ BG
Når prosessen er presset i bakgrunnen, gjenopptar prosessen. Følgende kommando viser alle løpsjobbene i bakgrunnen:
$ jobber
Metode 2:
I forrige metode begynte prosessen først å løpe i forgrunnen. Vi gikk til pause i prosessen, sendte den til bakgrunnen og gjenopptok den. I stedet kan vi kjøre prosessen direkte i bakgrunnen.
For å gjøre det, legg til "&" -tegnet på slutten av kommandoen:
$ ja "oh long johnson"> /dev /null &
Her kjøres de gyte prosessene automatisk i bakgrunnen. For å bekrefte, sjekk listen over bakgrunnsjobber:
$ jobber
Metode 3:
Vi kan også lansere prosessene i bakgrunnen ved hjelp av TMUX, en kraftig multiplexer som kan administrere flere terminaløkter i et enkelt vindu. Det kommer ikke forhåndsinstallert i Linux. Imidlertid er det tilgjengelig for alle de store Linux -distrosene. Lær mer om TMUX -installasjon på Linux.
I det følgende eksempel bruker vi TMUX for å pinge et mål og logge utgangen:
$ tmux new -d 'ping -c 9 127.0.0.1> ping.Logg'
Loggfilen verifiserer om kommandoen kjører vellykket eller ikke:
$ katt ping.Logg
Det er bare ett eksempel på hva tmux kan gjøre. Lær mer om tmux med eksempler.
Returnerer jobbene i forgrunnen
Hvis du ønsker å returnere en jobb i forgrunnen, bruker vi “FG” -kommandoen. Vi trenger også jobbnummeret fra jobbkommandoen.
Først må du bestemme jobben du vil ta med i forgrunnen:
$ jobber
Bruk nå “FG” -kommandoen:
$ fg %
Løsne prosessene fra terminalen
Enhver prosess assosiert med en terminal avsluttes når terminalen stenger, enten den kjører i forgrunnen eller i bakgrunnen. For å unngå prosessoppsigelse, dissosierer vi målprosessen fra terminalen/skallet.
Metode 1:
For å fornekte en prosess, trenger vi først en bakgrunnsprosess:
$ ja "qwerty"> /dev /null &
Sjekk listen over løpende bakgrunnsjobber:
$ jobber
Legg merke til serienummeret til målbakgrunnsjobben. Bruk nå kommandoen "Disown" for å løsne den fra terminalen:
$ DENOWN %
Måljobben skal nå forsvinne fra jobblisten:
$ jobber
Imidlertid kan du fremdeles se prosessen som kjører i bakgrunnen:
$ ps aux
Metode 2:
En annen måte å løsrive en prosess fra overordnet terminal er å bruke “nohup” -kommandoen. Det holder en prosess i bakgrunnen selv etter å ha stengt terminalen.
Bruken av "nohup" er som følger:
$ NOHUPOg
Kontroller om jobben opprettes vellykket:
$ jobber
Metode 3:
Denne metoden løsner målprosessen fullstendig. Det er en mer effektiv måte å løsrive GUI -appene på.
For eksempel, for å starte Firefox og løsne den helt fra terminalen, bruk følgende kommando:
$ Firefox /dev/null &
Her:
Konklusjon
Vi demonstrerte de forskjellige måtene å drive en prosess i bakgrunnen. Vi viste også måtene å fjerne en prosess fra overordnede terminalen. Disse teknikkene kan være nyttige når du jobber med terminalen eller kjører et skript.
Hvis du trenger å kjøre visse kommandoer i et spesifikt mønster, kan vi laste det som en SystemD -tjeneste. For eksterne maskiner kan vi også bruke tredjepartsverktøyene som Ansible for å automatisere nesten alt.
Glad databehandling!