Slik viser og kjører du Linux -bakgrunnsprosesser

Utførelsen av prosesser er avgjørende i ethvert operativsystem som brukes, siden de sikrer at både applikasjonene og andre elementer i operativsystemet kan fungere på riktig måte både i kompatibilitet og i utførelsen av funksjonene.

Hvert operativsystem kan håndtere prosesser annerledes, men for Linux er prosesser som regel knyttet til en terminal. Dette betyr at den må være åpen slik at prosessen kan fungere normalt, men denne handlingen kan føre til situasjoner som:

  • Den åpne terminalen kan inneholde mange utdata eller feil- / diagnosemeldinger, noe som gjør det vanskelig ikke bare å lese dataene, men også å administrere dem.
  • Hvis vi skulle stenge terminalen, vil prosessen sammen med de sekundære prosessene ende opp med å påvirke oppgaven som skal utføres.

I denne typen scenarier er det avgjørende å utføre de nødvendige prosessene i bakgrunnen, en bakgrunnsprosess er prosessen som vil bli utført på en skjult måte, og for driften er det ikke nødvendig med brukerens inngrep, på denne måten, selv om terminalen er lukket, vil prosessen fortsette å utføre oppgaven. Bakgrunnsprosesser gjelder for de oppgavene som kan ta tid, for eksempel skript, nedlasting av filer og andre, der vi ikke kan vente på at handlingen skal fullføres uten å gjøre noe.

I linux kan vi utføre prosesser i forgrunnen eller i bakgrunnen. Et program i forgrunnen når det kjøres i terminalen, vil vi ikke kunne utføre noen annen kommando før prosessen er avsluttet, men det kan gjøres fra bakgrunn eller bakgrunn.

Et program som kjører i bakgrunnen en gang startet, bruker ikke terminalen fra den ble kjørt til slutten. For å utføre en programvare eller kommando i bakgrunnen fra terminalen legger vi til Hvis vi legger til et ampersand (&) på slutten av kommandoen eller skriptet som vi ønsker å utføre, vil det bli utført i bakgrunnen av operativsystemet. Eksempel:

 nano & 
Solvetic vil forklare hvordan vi kan se og kjøre bakgrunnsprosesser på Linux.

1. Se liste over prosesser med ps -kommando i Linux


Med kommandoen ps -kommandoen kan vi kjenne statusen til en prosess. Ps er prosessstatus eller prosessstatus. PS -kommandoen viser ikke prosessene og spesifiserer noen PID-, TTY-, TIME- og CMD -kolonner.

PID (prosessnummer)Hver prosess får et unikt identifikasjonsnummer, som tildeles av Linux -kjernen.

TTYer terminalen knyttet til prosessen, kan den også være en annen inndataenhet.

TIDTiden prosessen har kjørt.

CMDDet er navnet på kommandoen som blir utført, bash er skallprosessen.

For eksempel vil kommandoen ps -A vise oss alle prosessene som kjører.

2. Start en bakgrunnsprosess eller kommando på Linux ved å bruke bg på Linux


Bg -kommandoen er utviklet som en jobbkontrollkommando som gjenopptar suspenderte jobber, men kjører dem i bakgrunnen.

Trinn 1
Den grunnleggende syntaksen for denne kommandoen er som følger:

 bg [arbeid] 
Steg 2
Hvis en prosess allerede kjører, må vi trykke på følgende taster for å stoppe den og deretter skrive inn kommandoen bg for å fortsette utførelsen i bakgrunnen som en jobb. For dette eksemplet vil vi bruke følgende linjer:

Ctrl + Z

 tjære -czf home.tar.gz. (kjørende prosess som stoppes med Ctrl + Z) bg (utførelse av kommandoen i bakgrunnen) jobber (visualisering av utførte jobber)

Trinn 3
Vi kan se at prosessen fortsatt kjører, men nå i bakgrunnen. Det vil også være mulig å kjøre en prosess direkte i bakgrunnen ved å skrive inn ampersand på slutten av den:

 tjære -czf home.tar.gz. & Arbeidsplasser 

3. Lagre kjørende Linux -prosesser etter å ha avsluttet terminalen i Linux


Dette er et vesentlig punkt siden, som vi har nevnt, i normal modus når terminalen er stengt, vil alle aktive prosesser ende, slik at det er mulig å la dem fortsette å kjøre selv når terminalen er stengt.

For dette formålet kan vi bruke disown -kommandoen som vil bli brukt etter at en prosess har startet og blitt satt i bakgrunnen, kommandoen disown er en shell -jobb hvis oppgave er å eliminere jobbene fra den aktive listen over det aktive Shell.

Trinn 1
Når utførelsen utføres, når vi stenger terminalen, vil ikke jobben krasje eller sende en SIGHUP til noen barnejobb. Den grunnleggende syntaksen er:

 avvise jobID 
Steg 2
For driften vil vi utføre følgende:
 sudo rsync Templates / * / var / www / html / files / & (kommando for å utføre) jobber (aktive jobber) disown -h% 1 (for ikke å lukke prosessen eller kommandoen) jobber (visning av jobber)

MerkVed utførelse av mer enn én prosess eller kommando, kan vi se at hver av dem mottar en identifikasjons -ID, denne må angis med avvisning for å angi hvilken prosess som skal fortsette å kjøre.

Trinn 3
Alternativene som skal brukes med avvisning er:

-tilFjerner alle jobber hvis jobID ikke er gitt.

-hMerker hver jobb -ID slik at SIGHUP ikke blir sendt til jobben hvis skallet mottar en SIGHUP.

-rFjerner bare løpende jobber.

4. Lagre kjørende Linux -prosesser etter å ha avsluttet terminalen i Linux


Den grunnleggende oppgaven til nohup -kommandoen er å forhindre at kommandoen blir kansellert automatisk når du logger av eller går ut av skallet. Når du bruker nohup (no hangup) -kommandoen, blir hangup -signalet (HUP), som sendes til en prosess for å informere den om at brukeren har logget seg av, av nohup for å la prosessen fortsette å kjøre i sekunder flatt.

Trinn 1
Brukssyntaksen er som følger:

 nohup-kommando [kommando-argument …] 
Steg 2
I dette tilfellet vil vi bruke følgende eksempel. Hvis standardinngangen er en terminal, omdirigerer nohup den fra / dev / null. Derfor er terminalinngang ikke mulig når du kjører en kommando med nohup. Hvis standardutgangen er en terminal, blir kommandoutgangen lagt til nohup.out- eller $ HOME / nohup.out -filen. Hvis standardfeilen er en terminal, blir den omdirigert til standardutgang. For å lagre utdataene til en fil, må vi bruke "nohup -kommando> fil".
 nohup tar -czf iso.tar.gz Maler / * og jobber

5. Koble fra en Linux -prosess i terminalen

Trinn 1
Hvis målet er å skille en prosess helt fra terminalen, bør vi bruke følgende syntaks:

 app / dev / null & 
Steg 2
For eksempel:
 firefox / dev / null & 

6. Bruk bakgrunnsprosesser med Screen på Linux


Hvis du bruker en kommando i bakgrunnen, med alternativene nohup og &), vil den bli utført selv etter at økten er avsluttet, problemet er at når vi kobler til samme økt igjen, vil vi ikke se den aktive jobben i bakgrunnen, for å korrigere dette er det skjermkommandoen.

screen er en vindusbehandling i fullskjerm som administrerer en fysisk terminal mellom flere prosesser, normalt er skallene interaktive. Hver virtuelle terminal tilbyr funksjonene til en DEC VT100 terminal og i tillegg flere kontrollfunksjoner i ISO 6429 (ECMA 48, ANSI X3.64) og ISO 2022 standarder som gjør den ekstremt dynamisk.

Når vi kjører skjermen, opprettes et enkelt vindu med et skall eller den angitte kommandoen og deretter omgått for å kunne bruke programmet normalt.

Trinn 1
For å installere skjermen i Linux skal vi utføre følgende. Der skriver vi inn bokstaven S for å bekrefte nedlasting og installasjon.

 sudo apt installasjonsskjerm

Steg 2
Når den er installert, utfører vi kommandoen "skjerm", og vi vil se følgende:

Trinn 3
Der trykker vi på Enter -tasten for å bli omdirigert til det nye vinduet der vi utfører prosessen eller kommandoen som skal brukes i bakgrunnen:

 sudo tar czf temp.tar.gz / tmp & 

Trinn 4
Vi vil kunne visualisere de aktive vinduene ved hjelp av. For å gå ut av skjermøkten kan vi bruke tastene

Ctrl + a + d

Ctrl + alt + d

 skjerm -ls 

7. Stopp eller drep en suspendert eller bakgrunnsprosess på Linux


For denne handlingen, som består i å avslutte utførelsen av prosessen i bakgrunnen, kan vi bruke kommandoen "drepe", og i stedet for PID kan vi spesifisere jobbidentifikatoren, for eksempel:
 jobber (liste nåværende jobber) drep% 2 (drep eller avslutt prosessen identifiseres som 2)

8. Stopp en prosess eller ta en prosess i bakgrunnen


Noen programmer tar lang tid å fullføre, og de gjør ikke noe viktig i mellomtiden. Å kompilere programmer er en av disse oppgavene, det samme er å komprimere en stor fil. Det er ingen vits i å slutte å bruke datamaskinen mens disse prosessene fullfører og bruker ressurser. I disse tilfellene er det bedre å kjøre dem i bakgrunnen, la datamaskinen stå i posisjon til å kjøre et annet program.

Prosessene kan suspenderes. En suspendert prosess er en som ikke kjører for øyeblikket, men som stoppes midlertidig. Etter å ha suspendert en oppgave, kan du instruere oppgaven om å fortsette, i forgrunnen eller sekund, etter behov. Å gjenoppta en suspendert oppgave endrer ikke statusen for oppgaven i det hele tatt siden den vil fortsette å utføre akkurat der den sluttet.

Trinn 1
For å avbryte en prosess brukes følgende kombinasjon, når du trykker på denne kombinasjonen dør prosessen og alle ressurser frigjøres.

Ctrl + C

Steg 2
La oss prøve å sende en gjentatt kommando til bakgrunnen. Ja -kommandoen brukes til å teste manus som krever mange bekreftelser. Det den gjør er å gjenta "og" med det som er skrevet foran det uendelig til manuset stoppes eller brukeren stopper det:

  • Hvis vi skriver "ja" i terminalen, vil vi se en endeløs liste over "og".
  • Hvis vi skriver ja hei i terminalen, og vi vil se en endeløs liste over hei

Trinn 3
For å slette en fil uten å trykke på noen tast når den ber om bekreftelse, kan vi bruke den

 ja | rm -i * .txt 
Trinn 4
For å sende en prosess til bakgrunnen kaller vi den fra kommandolinjen etterfulgt av og lager uendelige null -enheter
 ja> / dev / null & 
Trinn 5
Dette vil vise oss oppgavenummeret og pid [1] 4106. Hvis vi nå bruker jobbkommandoen vil vi se
 [1] + Utfører ja> / dev / null &
Trinn 6
for å bringe det til forgrunnen skriver vi fg 1 og for å drepe prosessen drepe 4106 som er pid.
 Fg 1 Drep 4106
Med noen av de angitte alternativene vil det være mulig å administrere bakgrunnsprosessene i Linux på en mye mer sentral måte og dermed la de nødvendige oppgavene utføres selv når økten er avsluttet.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave