Imidlertid, hvis du er i et rå terminalskall som SSH, vil du ofte føle deg opptatt av prosesser som okkuperer og blokkerer skallet til de er fullført, spesielt på langvarige jobber. Det er her konseptet med bakgrunns- og forgrunnsprosesser spiller inn.
Denne opplæringen vil diskutere hvilke bakgrunns- og forgrunnsprosesser er, inkludert å lage og administrere dem i Linux.
Hva er en prosess?
Tillat meg å starte på grunnleggende nivå: hva er en prosess?
I Linux er en prosess en forekomst av et program. Vanligvis betyr dette at enhver kommando eller kjørbar i et skall er en prosess.
Det er hovedsakelig to typer prosesser:
Forgrunnsprosesser er hovedsakelig typiske applikasjoner som vi lanserer og samhandler med dem. Et eksempel vil være Nautilus File Manager i Gnome. I de fleste tilfeller kan vi starte forgrunnsprosesser fra skallet eller skrivebordsmiljøet.
På den annen side kjører bakgrunnsprosesser i bakgrunnen og krever ingen innspill eller interaksjon fra brukeren. Et eksempel vil være enhver typisk Linux -demon.
Hvordan kjøre en prosess i bakgrunnen
Anta at vi har en prosess som, mens vi løper, okkuperer skalløkten og hindrer oss i å utføre kommandoer til den kommer ut.
For eksempel, hvis vi kjører Firefox -nettleseren i skallet, vil den okkupere økten til prosessavslutning.
$ Firefox
Som du kan se, så lenge Firefox kjører, er Shell -ledeteksten utilgjengelig, og vi kan ikke utføre flere kommandoer.
For å løse dette kan vi gjøre det på to måter:
1: Bruke en ampersand (&)
Den første metoden bruker Ampersand & Sign. Dette ber skallet om å kjøre hvilken kommando foran ampersanden i bakgrunnen.
Et eksempel:
Firefox &
I et slikt scenario utføres prosessen i bakgrunnen og gyter som et nytt skallprompt slik at vi kan fortsette å utføre kommandoer.
Det gir også to numeriske identifikatorer. Den første vedlagte i firkantede parenteser er jobb -IDen, mens den neste er prosess -ID.
2: Bruke Ctrl + Z, BG -kommando.
Den neste metoden du kan bruke til å sette en prosess i bakgrunnen er å bruke snarveien Ctrl + Z. Dette stopper prosessen fra å blokkere skallet. Du kan deretter bruke BG -kommandoen for å skyve den til bakgrunnen.
Start for eksempel med å starte Firefox som:
$ Firefox
Mens prosessen kjører, trykk CTRL + Z. Dette returnerer skallet ditt. Til slutt, skriv inn BG -kommandoen for å skyve prosessen i bakgrunnen.
Hvordan vise bakgrunnsprosesser
For å se og administrere prosesser i bakgrunnen, bruk jobbkommandoen i skallet. Som vil vise bakgrunnsjobbene i den nåværende terminaløkten.
For eksempel:
$ jobber
Et eksempel på bakgrunnsjobber:
For å bringe en prosess som kjører i bakgrunnen i forgrunnen, bruk FG -kommandoen etterfulgt av jobb -IDen.
For å ta med Firefox -jobben i forgrunnen, bruker vi for eksempel kommandoen:
$ fg %1
For å sette i bakgrunnen igjen, trykk Ctrl + Z etterfulgt av BG -kommandoen.
Hvordan lage en prosess vedvarende etter at skallet dør
Når du kjører prosesser i bakgrunnen, og skalløkten din dør, avsluttes alle prosessene som er knyttet til den, noe som kan være problematisk, spesielt hvis det er en SSH -økt.
Dette er imidlertid ikke for stort problem hvis du bruker en terminal multiplexer som TMUX eller skjerm fordi du i så fall ganske enkelt kan feste økten på nytt.
Imidlertid, hvis du kjører en skalløkt uten en multiplexer, kan du bruke nohup -kommandoen.
NOHUP-kommandoen er immun mot hang-ups og kan ignorere sukksignalet sendt til en prosess.
Derfor, hvis du kjører en kommando med Nohup, fortsetter den å løpe selv om skalløkten ved et uhell dør.
For eksempel, for å kjøre Firefox med Nohup, bruk kommandoen:
NOHUP FIREFOX &
Dette vil kjøre prosessen i bakgrunnen som vedvarende et skallavslutning.
Du kan kjøre en ny terminaløkt og se bakgrunnsjobber. Du vil se prosessen som fortsatt kjører i bakgrunnen.
Konklusjon
I denne opplæringen diskuterte vi forskjellige måter å kjøre og sende prosesser til bakgrunnen i Linux. Vi dekket også hvordan vi kan bringe en bakgrunnsprosess til bakgrunnen og vedvare hang-up etter skallavslutning.