vanligtvis när du kör ett kommando i terminalen måste du vänta tills kommandot är klart innan du kan ange ett annat. Detta kallas att köra kommandot i förgrunds-eller förgrundsprocessen. När en process körs i förgrunden upptar den ditt skal, och du kan interagera med det med inmatningsenheterna.

vad händer om kommandot tar lång tid att avsluta, och du vill köra andra kommandon under tiden? Du har flera alternativ till ditt förfogande., Det mest uppenbara och okomplicerade alternativet är att starta en ny skalsession och köra kommandot i det. Ett annat alternativ är att köra kommandot i bakgrunden.

en bakgrundsprocess är en process / kommando som startas från en terminal och körs i bakgrunden, utan interaktion från användaren.

i den här artikeln kommer vi att prata om bakgrundsprocesserna är Linux. Vi visar dig hur du startar ett kommando i bakgrunden och hur du håller processen igång efter att skalsessionen är stängd.,

kör ett Linux-kommando i bakgrunden #

för att köra ett kommando i bakgrunden, Lägg till ampersand-symbolen (&) I slutet av kommandot:

command &

Shell job ID (omgivet med parentes) och process-ID kommer att skrivas ut på terminalen:

command &

shell job ID (omgivet med parentes) och process-ID kommer att skrivas ut på terminalen:

 25177

Du kan ha flera processer som körs i bakgrunden samtidigt.

bakgrundsprocessen fortsätter att skriva meddelanden till terminalen från vilken du anropade kommandot., 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 .,för att få en bakgrundsprocess till förgrunden, använd kommandot fg:

fg

om du har flera bakgrundsjobb, inkludera %och jobb-ID efter kommandot:

fg %1

om du vill avsluta bakgrundsprocessen använder du kommandot %ochkill kommandot följt av process-id:

kill -9 25177

flytta en förgrundsprocess till bakgrunden #

för att flytta en pågående förgrundsprocess i bakgrunden:

  1. stoppa processen genom att skrivaCtrl+Z.,
  2. flytta den stoppade processen till bakgrunden genom att skrivabg.

Håll bakgrundsprocesser som körs efter att ett skal har gått ut #

om din anslutning sjunker eller du loggar ut ur skalsessionen avslutas bakgrundsprocesserna. Det finns flera sätt att hålla processen igång efter den interaktiva skalsessionen slutar.,

ett sätt är att ta bort jobbet från skalets jobbkontroll med hjälp av disown shell builtin:

disown

om du har fler än ett bakgrundsjobb, inkludera % och jobb-ID efter kommandot:

disown %1

bekräfta att jobbet tas bort från tabellen med aktiva jobb med kommandot jobs -l. För att lista alla processer som körs, inklusive det borttagna använd kommandotps aux.,

ett annat sätt att hålla en process igång efter skalutgången är att användanohup.

kommandotnohup utför ett annat program som anges som dess argument och ignorerar allaSIGHUP (hangup) signaler. SIGHUP är en signal som skickas till en process när dess kontrollerande terminal är stängd.

för att köra ett kommando i bakgrunden med kommandotnohup, skriv:

nohup command &

kommandoutgången omdirigeras till filennohup.out.,

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

om du loggar ut eller stänger terminalen avslutas inte processen.

alternativ #

det finns ett antal program som låter dig ha flera interaktiva sessioner samtidigt.

skärm #

skärm eller GNU-skärm är ett terminalmultiplexerprogram som låter dig starta en skärmsession och öppna valfritt antal windows (virtuella terminaler) inuti den sessionen. Processer som körs i skärmen fortsätter att köras när deras fönster inte syns även om du kopplas bort.,

Tmux #

Tmux är ett modernt alternativ till GNU-skärmen. Med Tmux kan du också skapa en session och öppna flera fönster i den sessionen. Tmux sessioner är ihållande, vilket innebär att program som körs i Tmux fortsätter att köras även om du stänger terminalen.

slutsats #

för att köra ett kommando i bakgrunden, inkludera& I slutet av kommandot.

När du kör ett kommando i bakgrunden behöver du inte vänta tills det är klart innan du kan utföra ett annat.

Articles

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *