Sådan får du vist og kørt Linux -baggrundsprocesser

Udførelsen af ​​processer er afgørende for ethvert operativsystem, der bruges, da de sikrer, at både applikationer og andre elementer i operativsystemet kan fungere på den korrekte måde både i kompatibilitet og i udførelsen af ​​deres funktioner.

Hvert operativsystem kan håndtere processer forskelligt, men i tilfælde af Linux er processer som regel forbundet med en terminal. Det betyder, at den skal være åben, så processen kan fungere normalt, men denne handling kan føre til situationer som:

  • Den åbne terminal kan indeholde mange outputdata eller fejl- / diagnosemeddelelser, hvilket gør det svært ikke kun at læse dataene, men også at administrere dem.
  • Hvis vi skulle lukke terminalen, vil processen sammen med dens sekundære processer ende direkte påvirke den opgave, der skal udføres.

I denne type scenarie er det vigtigt at udføre de nødvendige processer i baggrunden, en baggrundsproces er den proces, der vil blive udført på en skjult måde, og for dens drift er brugerens indgriben ikke påkrævet, på denne måde, selvom terminalen er lukket, vil processen fortsætte med at udføre sin opgave. Baggrundsprocesser gælder for de opgaver, der kan tage tid, f.eks. Scripts, downloadfiler og andre, hvor vi ikke kan vente på, at handlingen er gennemført uden at gøre noget.

I linux kan vi udføre processer i forgrunden eller i baggrunden. Et program i forgrunden, når det udføres i terminalen, vil vi ikke være i stand til at udføre nogen anden kommando, før processen slutter, men det kan udføres fra baggrunden eller baggrunden.

Et program, der kører i baggrunden, når det først er startet, bruger ikke terminalen fra det blev kørt til slutningen. For at udføre en software eller kommando i baggrunden fra terminalen tilføjer vi Hvis vi tilføjer et ampersand (&) i slutningen af ​​den kommando eller script, som vi ønsker at udføre, vil det blive udført i baggrunden af ​​operativsystemet. Eksempel:

 nano & 
Solvetic vil forklare, hvordan vi kan se og køre baggrundsprocesser på Linux.

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


Med kommandoen ps -kommando kan vi kende status for en proces. Ps er processtatus eller processtatus. Kommandoen ps viser ikke processerne og angiver nogle PID-, TTY-, TIME- og CMD -kolonner.

PID (procesnummer)Hver proces får et unikt identifikationsnummer, som tildeles af Linux -kernen.

TTYer terminalen forbundet med processen, kan det også være en anden inputenhed.

TIDDen tid, processen har kørt.

CMDDet er navnet på kommandoen, der udføres, bash er shell -processen.

For eksempel viser kommandoen ps -A os alle de kørende processer.

2. Start en baggrundsproces eller kommando på Linux ved hjælp af bg på Linux


Bg -kommandoen er udviklet som en jobkontrolkommando, der genoptager suspenderede job, men kører dem i baggrunden.

Trin 1
Den grundlæggende syntaks for denne kommando er som følger:

 bg [arbejde] 
Trin 2
Hvis en proces allerede kører, skal vi trykke på følgende taster for at stoppe den og derefter indtaste kommandoen bg for at fortsætte udførelsen i baggrunden som et job. I dette eksempel vil vi bruge følgende linjer:

Ctrl + Z

 tjære -czf hjem.tar.gz. (kørende proces, der stoppes med Ctrl + Z) bg (udførelse af kommandoen i baggrunden) job (visualisering af de udførte job)

Trin 3
Vi kan se, at processen stadig kører, men nu i baggrunden. Det vil også være muligt at køre en proces direkte i baggrunden ved at indtaste ampersand for enden af ​​den:

 tjære -czf hjem.tar.gz. & Job 

3. Gem kørende Linux -processer efter afslutning af terminal i Linux


Dette er et vigtigt punkt, da, som vi har nævnt, i normal tilstand, når terminalen er lukket, alle aktive processer slutter, så det er muligt at lade dem fortsætte med at køre, selv når terminalen er lukket.

Til dette formål kan vi bruge kommandoen disown, som vil blive brugt, efter at en proces er startet og er blevet sat i baggrunden, kommandoen disown er et shell -job, hvis mission er at fjerne jobene fra den aktive liste over den aktive Shell.

Trin 1
Når udførelsen udføres, når vi lukker terminalen, vil jobbet ikke gå ned eller sende en OPSKRIFT til ethvert børnearbejde. Dens grundlæggende syntaks er:

 afvise jobID 
Trin 2
Til driften udfører vi følgende:
 sudo rsync Skabeloner / * / var / www / html / files / & (kommando for at udføre) job (aktive job) afvis -h% 1 (for ikke at lukke processen eller kommandoen) job (visning af job)

BemærkI tilfælde af at udføre mere end én proces eller kommando, kan vi se, at hver enkelt af dem modtager et identifikations -ID, dette skal indtastes med disown for at angive, hvilken proces der vil fortsætte med at køre.

Trin 3
De muligheder, der skal bruges med afvisning, er:

-tilFjerner alle job, hvis der ikke findes jobID.

-hMarkerer hvert job -ID, så SIGHUP ikke sendes til jobbet, hvis skallen modtager et OVERHOLD.

-rRydder kun løbende job.

4. Gem kørende Linux -processer efter afslutning af terminal i Linux


Den grundlæggende opgave for nohup -kommandoen er at forhindre kommandoen i at blive annulleret automatisk, når du logger ud eller forlader skallen. Når du bruger nohup (no hangup) -kommandoen, opsnappes hangup -signalet (HUP), som sendes til en proces for at informere det om, at brugeren er logget ud, af nohup for at tillade processen at fortsætte med at køre på få sekunder.

Trin 1
Brugssyntaksen er som følger:

 nohup-kommando [kommando-argument …] 
Trin 2
I dette tilfælde vil vi bruge følgende eksempel. Hvis standardindgangen er en terminal, omdirigerer nohup den fra / dev / null. Derfor er terminalinput ikke mulig, når du kører en kommando med nohup. Hvis standardoutput er en terminal, tilføjes kommandoutput til filen nohup.out eller $ HOME / nohup.out. Hvis standardfejlen er en terminal, omdirigeres den til standardoutput. For at gemme output til en fil, skal vi bruge "nohup kommando> fil".
 nohup tar -czf iso.tar.gz Skabeloner / * og job

5. Fjern forbindelsen til en Linux -proces i terminalen

Trin 1
Hvis målet er at adskille en proces fuldstændigt fra terminalen, bør vi bruge følgende syntaks:

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

6. Brug baggrundsprocesser med Screen på Linux


I tilfælde af at bruge en kommando i baggrunden med indstillingerne nohup og &), vil den blive udført selv efter at sessionen er lukket, problemet er, at når vi genopretter forbindelse til den samme session igen, vil vi ikke se det aktive job i baggrunden, for at korrigere dette er der skærmkommandoen.

screen er en fuldskærmsvinduesmanager, der administrerer en fysisk terminal mellem flere processer, normalt er skallerne interaktive. Hver virtuel terminal tilbyder funktionerne i en DEC VT100 terminal og derudover flere kontrolfunktioner i ISO 6429 (ECMA 48, ANSI X3.64) og ISO 2022 standarder, hvilket gør den ekstremt dynamisk.

Når vi kører skærm, oprettes et enkelt vindue med en skal eller den angivne kommando og derefter omgået for at kunne bruge programmet normalt.

Trin 1
For at installere skærm i Linux vil vi udføre følgende. Der indtaster vi bogstavet S for at bekræfte download og installation.

 sudo apt installeringsskærm

Trin 2
Efter installationen udfører vi kommandoen "skærm", og vi vil se følgende:

Trin 3
Der trykker vi på Enter -tasten for at blive omdirigeret til det nye vindue, hvor vi udfører processen eller kommandoen, der skal bruges i baggrunden:

 sudo tar czf temp.tar.gz / tmp & 

Trin 4
Vi vil være i stand til at visualisere de aktive vinduer ved hjælp af. For at forlade skærmsessionen kan vi bruge tasterne

Ctrl + a + d

Ctrl + alt + d

 skærm -ls 

7. Stop eller dræb en suspenderet eller baggrundsproces på Linux


Til denne handling, som består i at afslutte udførelsen af ​​processen i baggrunden, kan vi bruge kommandoen "kill", og i stedet for PID kan vi angive job -id'et, for eksempel:
 job (liste aktuelle job) dræb% 2 (dræb eller afslut proces identificeres som 2)

8. Stop en proces, eller tag en proces i baggrunden


Nogle programmer tager lang tid at afslutte, og de gør ikke noget vigtigt i mellemtiden. Kompilering af programmer er en af ​​disse opgaver, ligesom komprimering af en stor fil. Der er ingen mening i at stoppe med at bruge computeren, mens disse processer afslutter og forbruger ressourcer. I disse tilfælde er det bedre at køre dem i baggrunden, lade computeren stå i stand til at køre et andet program.

Processerne kan suspenderes. En suspenderet proces er en, der ikke kører i øjeblikket, men midlertidigt stoppes. Efter at have suspenderet en opgave, kan du instruere opgaven om at fortsætte i forgrunden eller sekund efter behov. Genoptagelse af en suspenderet opgave ændrer slet ikke opgavens status, da den fortsætter med at køre lige der, hvor den slap.

Trin 1
For at afbryde en proces bruges følgende kombination, når du trykker på denne kombination dør processen, og alle ressourcer frigives.

Ctrl + C

Trin 2
Lad os prøve at sende en gentagende kommando til baggrunden. Ja -kommandoen bruges til at teste script, der kræver mange bekræftelser. Det, det gør, er at gentage "og" med det, der er skrevet foran det uendeligt, indtil scriptet stoppes, eller brugeren stopper det:

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

Trin 3
For at slette en fil uden at trykke på en tast, når den beder om bekræftelse, kan vi bruge

 ja | rm -i * .txt 
Trin 4
For at sende en proces til baggrunden kalder vi den fra kommandolinjen efterfulgt af & opret uendelige nul -enheder
 ja> / dev / null & 
Trin 5
Dette viser os opgavens nummer og pid [1] 4106. Hvis vi nu bruger jobkommandoen, ser vi
 [1] + Udfører ja> / dev / null &
Trin 6
for at bringe det til forgrunden skriver vi fg 1 og for at dræbe processen dræbe 4106, som er pid.
 Fg 1 Dræb 4106
Med en hvilken som helst af de angivne muligheder vil det være muligt at styre baggrundsprocesserne i Linux på en meget mere central måde og dermed tillade de nødvendige opgaver at blive udført, selv når sessionen er lukket.

wave wave wave wave wave