Linux-opdrachten op de achtergrond uitvoeren

Linux Opdrachten Op De Achtergrond Uitvoeren



Door Linux-opdrachten op de achtergrond uit te voeren, kan de gebruiker doorgaan met het uitvoeren van andere taken terwijl de opdracht nog steeds wordt uitgevoerd. Er zijn meerdere manieren om een ​​opdracht op de achtergrond uit te voeren; een van de eenvoudige methoden is door een toe te voegen ampersand (&) aan het einde van de opdrachtregel.

Zodra een proces is ingesteld om op de achtergrond te worden uitgevoerd, hebben we er toegang toe via de banen commando. Dit artikel bevat alle verschillende manieren om een ​​opdracht op de achtergrond uit te voeren.







De lijst met verschillende manieren om een ​​achtergrondproces uit te voeren is als volgt:



Hieronder volgen de details van alle methoden om een ​​achtergrondproces uit te voeren:



1: Het ampersand (&)-teken gebruiken

In Linux is Ampersand (&) een shell-operator die een commando op de achtergrond verstuurt als een afzonderlijk proces. Door ampersand (&) te combineren met een commando, wordt het uitgevoerd als een achtergrondproces, waardoor de shell onmiddellijk door kan gaan met het verwerken van andere commando's.





Syntaxis voor een achtergrondproces met het ampersand-teken:

$ [ commando ] &


Het ampersand-symbool wordt altijd toegevoegd aan het einde van de opdracht met een enkele spatie ertussen '&' en laatste teken van commando.



Creëer bijvoorbeeld een slaapproces van 40 sec.

$ slaap 40


Zoals we kunnen zien, voert de terminal het slaapcommando uit en staat ons niet toe om een ​​andere taak uit te voeren.


Druk nu op 'Ctrl+Z' om dit proces te stoppen. Vervolgens voeren we deze keer hetzelfde slaapcommando uit, maar als we een ampersand-operator gebruiken, wordt het op de achtergrond ingesteld.

$ slaap 40 &



Nu is dit proces op de achtergrond. Om het lopende proces op de achtergrond weer te geven, gebruikt u:

$ banen -l



Dood nu dit achtergrondproces met:

$ doden -9 [ baan-ID ]


Gebruik bijvoorbeeld om het huidige lopende slaapproces te beëindigen:

$ doden -9 6149


Nu wordt het slaapproces gedood om de lijst met het lopende proces op de achtergrond te bevestigen.

$ banen -l



Hier is nog een voorbeeld van gebruiken & ampersand teken is met gedit commando.

Als we bijvoorbeeld de gedit-teksteditor rechtstreeks openen met behulp van de terminal, zullen we de shell voor ander werk moeten gebruiken, anders moeten we eerst het huidige proces stoppen.

$ gedit


Als u de bovenstaande opdracht gebruikt, wordt de teksteditor geopend die deze voor de terminal opent.


Maar na het gebruik van '&' aan het einde van de opdracht gedit, is de shell gratis te gebruiken voor andere processen:

$ gedit &


2: De opdracht 'bg' gebruiken

De opdracht bg is de tweede manier om opdrachten op de achtergrond uit te voeren. Met deze opdracht kan de gebruiker in de terminal blijven werken terwijl het proces op de achtergrond wordt uitgevoerd, waardoor de terminal vrijkomt voor andere taken. De opdracht bg wordt gebruikt voor een langlopend achtergrondproces dat zelfs wordt uitgevoerd als de gebruiker uitlogt.

Net als een ampersand-teken hoeven we ons geen zorgen te maken over het toevoegen van het aan de opdracht, elke keer dat we bg-tekst naar de terminal sturen. Het zal het proces op de achtergrond starten en de terminal vrijmaken voor toekomstig gebruik.

Laten we bijvoorbeeld het vorige voorbeeld gebruiken en het slaapcommando verzenden met:

$ slaap 40



Nu is het proces actief en is de terminal niet beschikbaar voor gebruik. Om het bg-commando te gebruiken en dit proces op de achtergrond te verzenden, moeten we eerst het huidige uitvoeringsproces stoppen door op te drukken 'Ctrl + Z' en het uitvoeren van deze opdracht:

$ bg


Na het verzenden van het bg-commando begon het slaapproces op de achtergrond door te gaan. We zien een ampersand '&' aan het einde, wat aangeeft dat het huidige proces op de achtergrond actief is.


Om de opdracht Jobs uitvoeren op de achtergrond te controleren:

$ banen -l



Om te controleren of de opdracht op de achtergrond wordt uitgevoerd, gebruikt u:

$ bijv



Om het huidige proces te beëindigen, gebruikt u de taak-ID met de opdracht kill. Voer het volgende uit om de taak-ID te controleren:

$ banen -l



Na het kennen van het taken-ID-kill-proces met behulp van:

$ doden -9 [ baan-ID ]


Gebruik bijvoorbeeld om het huidige lopende slaapproces te beëindigen:

$ doden -9 6584


Voer de opdracht jobs uit om te bevestigen of het proces is beëindigd of niet:

$ banen -l


We kunnen zien dat het slaapproces niet langer op de achtergrond draait:

3: Het nohup-commando gebruiken

De opdracht nohup staat op de derde plaats op onze lijst met lopende achtergrondprocessen in Linux. De opdracht staat voor 'niet ophangen' en wordt gebruikt om te voorkomen dat het proces wordt beëindigd totdat de terminalsessie is afgelopen. Wanneer een proces wordt uitgevoerd met behulp van nohup, blijft het actief, zelfs als de gebruiker uitlogt, en wordt de uitvoer van het proces omgeleid naar een bestand met de naam 'nohup.out' .

De nohup-opdracht om Google continu op de achtergrond te pingen is en de uitvoer wordt omgeleid naar een tekstbestand GooglePing.txt:

$ nee ping Google com > GooglePing.txt &


Na het schrijven van deze opdracht kunnen we zien dat de terminal gratis is en dat er op de achtergrond een achtergrondproces voor het continu pingen van Google wordt uitgevoerd.


Om toegang te krijgen tot het logbestand, kunnen we de volgende opdracht gebruiken:

$ kat GooglePing.txt



Het logbestand is ook toegankelijk via de GUI vanaf het startscherm.

4: Het disown-commando gebruiken

Het disown-commando verwijdert een proces uit de shell en voert het op de achtergrond uit. Wanneer een proces wordt verstoten, is het niet langer gekoppeld aan de terminal en blijft het actief, zelfs nadat de gebruiker uitlogt of de terminal sluit.

Eerder hebben we de opdracht ampersand '&' gebruikt die het proces na de uitvoering naar de achtergrond verzendt, maar als we de shell sluiten, wordt het proces beëindigd. Om van dit verloochenen af ​​te komen, is er een commando.

Het disown-commando kan niet onafhankelijk werken, maar er moet minimaal één proces op de achtergrond worden uitgevoerd.

Voer de onderstaande opdracht uit met a & ampersand-teken dat uw opdracht naar de achtergrond stuurt.

$ ping Google com > GooglePing.txt &


Nadat het bestand is gemaakt, kunnen we het weergeven met de opdracht jobs.


Nu draait ons proces op de achtergrond om het los te koppelen van terminalgebruik:

$ verloochenen



Voer de opdracht jobs opnieuw uit om te bevestigen dat het proces is losgekoppeld van de terminal:

$ banen -l


Aangezien ons proces momenteel actief is, maar niet langer wordt weergegeven in de terminal:


Om ons proces te bevestigen, kunnen we de cat-opdracht gebruiken om toegang te krijgen tot dat ping-bestand:

$ kat GooglePing.txt



We hebben dit proces met succes losgekoppeld van de terminal, maar het draait nog steeds op de achtergrond.

5: Het tmux-hulpprogramma gebruiken

Tmux is een soort terminal-multiplexer-hulpprogramma. Met behulp van tmux kunnen we meerdere terminalsessies maken binnen een enkele shell. Het biedt de mogelijkheid om processen op de achtergrond uit te voeren.

Om een ​​achtergrondproces in Tmux uit te voeren, kunt u een nieuwe sessie maken en deze vervolgens loskoppelen met behulp van de toetsencombinatie Ctrl-b gevolgd door d.

Om het tmux-hulpprogramma op Ubuntu en Linux mint te installeren, gebruikt u:

$ sudo geschikt installeren tmux



Om te installeren op Fedora run:

$ sudo dnf installeren tmux


Om te installeren op Arch Linux run:

$ sudo pacman -S tmux


Voer nu de opdracht tmux uit om een ​​nieuwe terminal te openen:

$ tmux


Gebruik om een ​​nieuwe tmux-sessie te maken:

$ tmux nieuw -S [ sessie_id ]


Om al het gebruik van tmux-sessies weer te geven:

$ tmux ls


Gebruik voor het doden van een tmux-sessie de opdracht als:

$ tmux kill-sessie -T [ sessie_id ]


Bijvoorbeeld om te doden '0' tmux sessie gebruik:

$ tmux kill-sessie -T 0


Hier hebben we de huidige actieve tmux-sessie vermeld en deze beëindigd met de bovenstaande opdracht:


    • Druk op om los te koppelen van de tmux-sessie 'Ctrl+B+D' .
    • Druk op om een ​​lijst met alle opdrachten te krijgen 'Ctrl+B+?' .
    • Druk op om tussen tmux-vensters te schakelen 'Ctrl+B+O' .

Druk op om de tmux-terminal verticaal te splitsen 'Ctrl+B' en typ % .


Om terug te gaan naar de hoofdterminal van tmux gebruik:

$ Uitgang

Conclusie

Het uitvoeren van achtergrondapplicaties in Linux is een krachtige functie waarmee gebruikers hun langlopende taken kunnen blijven uitvoeren, zelfs nadat ze zich hebben afgemeld bij de terminal of het venster hebben gesloten. Meestal een ampersand & teken of bg commando wordt gebruikt om een ​​proces op de achtergrond te sturen. We kunnen echter ook gebruiken nee of verloochenen opdracht om een ​​proces los te koppelen van de terminal. Eindelijk kunnen we de tmux-hulpprogramma om meerdere terminals te maken en achtergrondprocessen uit te voeren zonder de terminal te storen.