Send en prosess til bakgrunn Linux

Send en prosess til bakgrunn Linux
Når vi jobber med grafiske stasjonære miljøer, bekymrer vi oss sjelden for bakgrunnsprosesser. Hvis vi har en prosess som kjører i forgrunnen, kan vi raskt gyte et annet terminalvindu og fortsette med arbeidet vårt.

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
  • Bakgrunnsprosesser

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.