Hoe Linux-achtergrondprocessen te bekijken en uit te voeren

De uitvoering van processen is van vitaal belang in elk gebruikt besturingssysteem, omdat ze ervoor zorgen dat zowel de applicaties als andere elementen van het besturingssysteem op de juiste manier kunnen werken, zowel in compatibiliteit als bij het uitvoeren van hun functies.

Elk besturingssysteem kan processen anders afhandelen, maar in het geval van Linux zijn processen in de regel gekoppeld aan een terminal. Dit betekent dat het open moet zijn zodat het proces normaal kan werken, maar deze actie kan leiden tot situaties zoals:

  • De open terminal kan veel uitvoergegevens of fout-/diagnoseberichten bevatten, waardoor het niet alleen moeilijk is om de gegevens te lezen, maar ook om deze te beheren.
  • Als we de terminal zouden sluiten, zal het proces samen met de secundaire processen direct van invloed zijn op de uit te voeren taak.

In dit type scenario is het essentieel om de noodzakelijke processen op de achtergrond uit te voeren, een achtergrondproces is het proces dat op een verborgen manier wordt uitgevoerd en voor de werking ervan is de tussenkomst van de gebruiker niet vereist, op deze manier, hoewel de terminal is gesloten, het proces zal zijn taak blijven uitvoeren. Achtergrondprocessen zijn van toepassing op die taken die tijd kunnen vergen, zoals scripts, bestanden downloaden en andere, waarbij we niet kunnen wachten tot de actie is voltooid zonder iets te doen.

In linux kunnen we processen op de voorgrond of op de achtergrond uitvoeren. Een programma op de voorgrond wanneer het in de terminal wordt uitgevoerd, kunnen we geen andere opdracht uitvoeren totdat het proces eindigt, maar het kan vanaf de achtergrond of op de achtergrond worden gedaan.

Een programma dat eenmaal op de achtergrond draait, gebruikt de terminal niet vanaf het moment dat het werd uitgevoerd tot het einde. Om een ​​software of commando op de achtergrond vanaf de terminal uit te voeren, voegen we toe. Als we een ampersand (&) toevoegen aan het einde van het commando of script dat we willen uitvoeren, wordt het op de achtergrond uitgevoerd door het besturingssysteem. Voorbeeld:

 nano- & 
Solvetic zal uitleggen hoe we achtergrondprocessen op Linux kunnen zien en uitvoeren.

1. Zie lijst met processen met ps-opdracht in Linux


Met het commando ps kunnen we de status van een proces kennen. Ps is processtatus of processtatus. De opdracht ps geeft geen overzicht van de processen en specificeert enkele PID-, TTY-, TIME- en CMD-kolommen.

PID (procesnummer)Elk proces krijgt een uniek identificatienummer, dat wordt toegewezen door de Linux-kernel.

TTYis de terminal die bij het proces hoort, het kan ook een ander invoerapparaat zijn.

TIJDDe tijd dat het proces loopt.

CMDHet is de naam van de opdracht die wordt uitgevoerd, bash is het shell-proces.

Met het commando ps -A laat het ons bijvoorbeeld alle lopende processen zien.

2. Start een achtergrondproces of commando op Linux met bg op Linux


Het bg-commando is ontwikkeld als een taakbesturingscommando dat onderbroken taken hervat, maar op de achtergrond uitvoert.

Stap 1
De basissyntaxis van deze opdracht is als volgt:

 bg [werk] 
Stap 2
Als er al een proces loopt, moeten we op de volgende toetsen drukken om het te stoppen en vervolgens het bg-commando invoeren om de uitvoering op de achtergrond als een taak voort te zetten. Voor dit voorbeeld gebruiken we de volgende regels:

Ctrl + Z

 tar -czf home.tar.gz. (lopend proces dat wordt gestopt met Ctrl + Z) bg (uitvoering van het commando op de achtergrond) jobs (visualisatie van de uitgevoerde jobs)

Stap 3
We kunnen zien dat het proces nog steeds loopt, maar nu op de achtergrond. Het is ook mogelijk om een ​​proces direct op de achtergrond uit te voeren door het ampersand aan het einde ervan in te voeren:

 tar -czf home.tar.gz. & banen 

3. Sla lopende Linux-processen op na het verlaten van de terminal in Linux


Dit is een essentieel punt omdat, zoals we hebben vermeld, in de normale modus wanneer de terminal is gesloten, alle actieve processen zullen eindigen, zodat het mogelijk is om ze door te laten gaan, zelfs als de terminal is gesloten.

Voor dit doel kunnen we het disown-commando gebruiken dat zal worden gebruikt nadat een proces is gestart en op de achtergrond is geplaatst, het disown-commando is een shell-job waarvan de missie is om de jobs uit de actieve lijst van de actieve Shell te verwijderen.

Stap 1
Met de uitvoering van disown, wanneer we de terminal sluiten, zal de taak niet crashen of een SIGHUP naar een onderliggende taak sturen. De basissyntaxis is:

 werk-ID afwijzen 
Stap 2
Voor de werking ervan zullen we het volgende uitvoeren:
 sudo rsync Templates / * / var / www / html / files / & (opdracht om uit te voeren) jobs (actieve jobs) disown -h% 1 (order om het proces of commando niet te sluiten) jobs (weergave van jobs)

OpmerkingIn het geval van het uitvoeren van meer dan één proces of commando, kunnen we zien dat elk van hen een identificatie-ID ontvangt, dit moet worden ingevoerd met disown om aan te geven welk proces zal blijven lopen.

Stap 3
De opties om te gebruiken met disown zijn:

-totVerwijdert alle taken als jobID niet is opgegeven.

-HMarkeert elke taak-ID zodat SIGHUP niet naar de taak wordt verzonden als de shell een SIGHUP ontvangt.

-RWist alleen actieve taken.

4. Sla lopende Linux-processen op na het verlaten van de terminal in Linux


De basistaak van het nohup-commando is om te voorkomen dat het commando automatisch wordt geannuleerd wanneer u zich afmeldt of de shell verlaat. Bij gebruik van de opdracht nohup (geen ophangen) wordt het ophangsignaal (HUP), dat naar een proces wordt gestuurd om het te laten weten dat de gebruiker is uitgelogd, door nohup onderschept zodat het proces binnen enkele seconden kan worden voortgezet.

Stap 1
De gebruikssyntaxis is als volgt:

 nohup commando [commando-argument …] 
Stap 2
Voor dit geval gebruiken we het volgende voorbeeld. Als de standaardinvoer een terminal is, leidt nohup deze om vanuit / dev / null. Daarom is terminalinvoer niet mogelijk bij het uitvoeren van een opdracht met nohup. Als de standaarduitvoer een terminal is, wordt de opdrachtuitvoer toegevoegd aan het bestand nohup.out of $ HOME / nohup.out. Als de standaardfout een terminal is, wordt deze omgeleid naar de standaarduitvoer. Om de uitvoer in een bestand op te slaan, moeten we "nohup command> file" gebruiken.
 nohup tar -czf iso.tar.gz Sjablonen / * & jobs

5. Een Linux-proces ontkoppelen in de terminal

Stap 1
Als het doel is om een ​​proces volledig van de terminal te scheiden, moeten we de volgende syntaxis gebruiken:

 app / dev / null & 
Stap 2
Bijvoorbeeld:
 firefox / dev / null & 

6. Achtergrondprocessen gebruiken met Screen op Linux


In het geval van gebruik van een commando op de achtergrond, met de opties nohup en &), zal het zelfs na het sluiten van de sessie worden uitgevoerd, het probleem is dat, wanneer we opnieuw verbinding maken met dezelfde sessie, we de actieve taak niet zullen zien in de achtergrond, om dit te corrigeren is er het schermcommando.

screen is een vensterbeheerder op volledig scherm die een fysieke terminal tussen verschillende processen beheert, waarbij de shells normaal gesproken interactief zijn. Elke virtuele terminal biedt de functies van een DEC VT100-terminal en daarnaast verschillende besturingsfuncties van de ISO 6429 (ECMA 48, ANSI X3.64) en ISO 2022-normen die hem extreem dynamisch maken.

Wanneer we het scherm uitvoeren, wordt een enkel venster gemaakt met een shell of de opgegeven opdracht en vervolgens omzeild om het programma normaal te kunnen gebruiken.

Stap 1
Om screen in Linux te installeren gaan we het volgende uitvoeren. Daar voeren we de letter S in om de download en installatie te bevestigen.

 sudo apt installatiescherm

Stap 2
Eenmaal geïnstalleerd voeren we het commando "scherm" uit en zien we het volgende:

Stap 3
Daar drukken we op de Enter-toets om doorgestuurd te worden naar het nieuwe venster waar we het proces of de opdracht uitvoeren om op de achtergrond te gebruiken:

 sudo tar czf temp.tar.gz / tmp & 

Stap 4
We kunnen de actieve vensters visualiseren met. Om de schermsessie te verlaten, kunnen we de toetsen gebruiken

Ctrl + a + d

Ctrl + alt + d

 scherm -ls 

7. Stop of stop een onderbroken of achtergrondproces op Linux


Voor deze actie, die bestaat uit het beëindigen van de uitvoering van het proces op de achtergrond, kunnen we de opdracht "kill" gebruiken en in plaats van de PID kunnen we de taak-ID specificeren, bijvoorbeeld:
 jobs (lijst huidige jobs) kill% 2 (kill of beëindig proces identificeert als 2)

8. Stop een proces of breng een proces naar de achtergrond


Sommige programma's doen er lang over om te voltooien en doen in de tussentijd niets belangrijks. Het compileren van programma's is een van deze taken, net als het comprimeren van een groot bestand. Het heeft geen zin om te stoppen met het gebruik van de computer terwijl deze processen zijn voltooid en bronnen verbruiken. In deze gevallen is het beter om ze op de achtergrond te draaien, om de computer in staat te stellen een ander programma te draaien.

De processen kunnen worden opgeschort. Een onderbroken proces is een proces dat momenteel niet wordt uitgevoerd, maar tijdelijk is gestopt. Nadat u een taak hebt onderbroken, kunt u de taak de opdracht geven om door te gaan, op de voorgrond of als tweede, indien nodig. Het hervatten van een onderbroken taak verandert helemaal niets aan de status van de taak, omdat deze verder wordt uitgevoerd waar hij was gebleven.

Stap 1
Om een ​​proces te onderbreken wordt de volgende combinatie gebruikt, bij het indrukken van deze combinatie sterft het proces en komen alle middelen vrij.

Ctrl + C

Stap 2
Laten we proberen een herhalend commando naar de achtergrond te sturen. Het yes-commando wordt gebruikt om scripts te testen die veel bevestigingen vereisen.Wat het doet is "en" herhalen met alles wat ervoor staat, oneindig lang totdat het script wordt gestopt of de gebruiker het stopt:

  • Als we "ja" in de terminal typen en we zien een eindeloze lijst met "en".
  • Als we ja hallo typen in de terminal en we zien een eindeloze lijst met hallo

Stap 3
Om een ​​bestand te verwijderen zonder op een toets te drukken wanneer het om bevestiging vraagt, kunnen we gebruiken

 ja | rm -i * .txt 
Stap 4
Om een ​​proces naar de achtergrond te sturen, noemen we het vanaf de opdrachtregel gevolgd door & create oneindige null-apparaten
 ja> / dev / null & 
Stap 5
Dit toont ons het taaknummer en de pid [1] 4106. Als we nu het jobs-commando gebruiken, zullen we zien
 [1] + Ja uitvoeren> / dev / null &
Stap 6
om het naar de voorgrond te brengen schrijven we fg 1 en om het proces te doden kill 4106 wat de pid is.
 Fg 1 Dood 4106
Met elk van de aangegeven opties zal het mogelijk zijn om de achtergrondprocessen in Linux op een veel centralere manier te beheren en zo de vereiste taken uit te voeren, zelfs wanneer de sessie is gesloten.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave