als je een commando in de terminal uitvoert, moet je wachten tot het commando klaar is voordat je een ander commando kunt invoeren. Dit wordt het uitvoeren van het commando in de voorgrond of voorgrond proces genoemd. Wanneer een proces op de voorgrond draait, neemt het je shell in beslag, en je kunt ermee communiceren met behulp van de invoerapparaten.

Wat als het commando lang duurt om te voltooien, en u in de tussentijd andere commando ‘ s wilt uitvoeren? U heeft verschillende mogelijkheden tot uw beschikking., De meest voor de hand liggende en rechttoe rechtaan optie is om een nieuwe shell sessie te starten en het commando erin uit te voeren. Een andere optie is om het commando op de achtergrond uit te voeren.

een achtergrondproces is een proces / commando dat vanuit een terminal wordt gestart en op de achtergrond wordt uitgevoerd, zonder interactie van de gebruiker.

in dit artikel zullen we het hebben over de achtergrond processen is Linux. We zullen je laten zien hoe je een commando start op de achtergrond en hoe je het proces draaiende houdt nadat de shell sessie is gesloten.,

voer een Linux-opdracht uit op de achtergrond #

om een opdracht uit te voeren op de achtergrond, voegt u het ampersand-symbool (&) toe aan het einde van de opdracht:

command &

De shell-taak-ID (omgeven door haakjes) en proces-ID worden afgedrukt op de terminal:

 25177

u kunt meerdere processen tegelijkertijd op de achtergrond laten draaien.

het achtergrondproces zal doorgaan met het schrijven van berichten naar de terminal van waaruit u het commando hebt aangeroepen., To suppress the stdout and stderr messages use the following syntax:

command > /dev/null 2>&1 & 

>/dev/null 2>&1 means redirect stdout to /dev/null and stderr to stdout .,/div>

Om de achtergrond naar de voorgrond te verplaatsen, gebruik je de fg commando:

fg

Als u meerdere achtergrond banen, include % en de taak-ID na het commando:

fg %1

beëindigen van de achtergrond proces, gebruik je het kill commando uit gevolgd door de proces-ID:

kill -9 25177

Verplaats een Voorgrond Proces op de Achtergrond #

verplaatsen van een lopend voorgrond proces in de achtergrond:

  1. het proces Stoppen door het intypen van Ctrl+Z.,
  2. verplaats het gestopte proces naar de achtergrond door bgte typen.

laat achtergrondprocessen draaien nadat een Shell afsluit #

als uw verbinding wegvalt of u uitlogt bij de shell-sessie, worden de achtergrondprocessen beëindigd. Er zijn verschillende manieren om het proces draaiende te houden na het einde van de interactieve shell sessie.,

Een manier is om de te verwijderen taak van de shell ‘ s job control met behulp van de disown shell builtin:

disown

Als u meer dan één achtergrond banen, include % en de taak-ID na het commando:

disown %1

Bevestig dat de taak wordt verwijderd uit de tabel van actieve opdrachten met behulp van de jobs -l commando. Gebruik het ps aux commando om alle lopende processen weer te geven, inclusief de verstoten processen.,

een andere manier om een proces draaiende te houden na het afsluiten van de shell is door nohupte gebruiken.

het commando nohup voert een ander als argument opgegeven programma uit en negeert alle SIGHUP (hangup) signalen. SIGHUP is een signaal dat naar een proces wordt verzonden wanneer de controlerende terminal wordt gesloten.

om een opdracht op de achtergrond uit te voeren met behulp van de opdracht nohup typt u:

nohup command &

De uitvoer van de opdracht wordt omgeleid naar het bestand nohup.out.,

nohup: ignoring input and appending output to 'nohup.out'

Als u zich afmeldt of de terminal Sluit, wordt het proces niet beëindigd.

alternatieven #

Er zijn een aantal programma ‘ s waarmee u meerdere interactieve sessies tegelijkertijd kunt hebben.

scherm #

scherm of GNU-scherm is een terminal multiplexer programma waarmee u een schermsessie kunt starten en een willekeurig aantal vensters (virtuele terminals) in die sessie kunt openen. Processen die in het scherm worden uitgevoerd, blijven draaien wanneer hun venster niet zichtbaar is, zelfs als de verbinding wordt verbroken.,

Tmux #

Tmux is een modern alternatief voor het GNU-scherm. Met Tmux kunt u ook een sessie maken en meerdere vensters in die sessie openen. Tmux sessies zijn persistent, wat betekent dat programma ‘ s die in Tmux draaien blijven draaien, zelfs als je de terminal Sluit.

conclusie #

om een commando op de achtergrond uit te voeren, voeg& aan het einde van het commando toe.

wanneer u een commando op de achtergrond uitvoert, hoeft u niet te wachten tot het voltooid is voordat u een ander commando kunt uitvoeren.

Articles

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *