typisk når du kører en kommando i terminalen, skal du vente, indtil kommandoen er færdig, før du kan indtaste en anden. Dette kaldes at køre kommandoen i forgrunden eller forgrundsprocessen. Når en proces kører i forgrunden, optager den din shell, og du kan interagere med den ved hjælp af inputenhederne.

Hvad hvis kommandoen tager lang tid at afslutte, og du vil køre andre kommandoer i mellemtiden? Du har flere muligheder til din rådighed., Den mest oplagte og enkle mulighed er at starte en ny shell-session og køre kommandoen i den. En anden mulighed er at køre kommandoen i baggrunden.

en baggrundsproces er en proces / kommando, der startes fra en terminal og kører i baggrunden uden interaktion fra brugeren.

i denne artikel vil vi tale om baggrunden processer er Linu.. Vi viser dig, hvordan du starter en kommando i baggrunden, og hvordan du holder processen kørende, når shell-sessionen er lukket.,

Køre en Linux Kommando i Baggrunden #

du kører en kommando i baggrunden, tilføj ampersand-tegnet (&) ved udgangen af kommandoen:

command &

tanken job-ID ‘ et (omgivet af parentes) og proces-ID, der vil blive udskrevet på terminalen:

 25177

Du kan have flere processer kørende i baggrunden på samme tid.

baggrundsprocessen fortsætter med at skrive meddelelser til den terminal, hvorfra du påberåbte kommandoen., 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>

for At bringe en baggrunds proces i forgrunden, skal du bruge fg kommando:

fg

Hvis du har flere baggrunden job, omfatter % og de job-ID ‘ et efter kommandoen:

fg %1

for At afslutte den baggrund, proces, brug kill kommando efterfulgt af proces-ID:

kill -9 25177

Flyt en Forgrund Proces Baggrunden #

for At flytte en kørende forgrunden proces i baggrunden:

  1. Standse processen ved at skrive Ctrl+Z.,
  2. Flyt den stoppede proces til baggrunden ved at skrive bg.

hold baggrundsprocesser kørende, når en Shell forlader #

Hvis din forbindelse falder, eller du logger ud af shell-sessionen, afsluttes baggrundsprocesserne. Der er flere måder at holde processen kørende efter den interaktive shell session slutter.,

En måde er at fjerne opgaven fra shell ‘ s job kontrol ved hjælp af disown indbygget shell:

disown

Hvis du har mere end en baggrund job, omfatter % og de job-ID ‘ et efter kommandoen:

disown %1

Bekræfte, at opgaven er fjernet fra bordet af aktive job ved hjælp af jobs -l kommandoen. For at liste alle kørende processer, herunder den Diso .ned brug kommandoen ps aux.,

en anden måde at holde en proces kørende efter shell e .it er at bruge nohup.

kommandoennohup udfører et andet program, der er angivet som dets argument, og ignorerer alleSIGHUP (hangup) signaler. SIGHUP er et signal, der sendes til en proces, når dens kontrollerende terminal er lukket.

du kører en kommando i baggrunden ved brug af nohup kommando, skriv:

nohup command &

kommandoen output er omdirigeret til den nohup.out fil.,

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

Hvis du logger ud eller lukker terminalen, afsluttes processen ikke.

alternativer #

Der er en række programmer, der giver dig mulighed for at have flere interaktive sessioner på samme tid.

Skærm #

Skærmen eller GNU Screen er en terminal multiplexer program, der giver dig mulighed for at starte en skærm session og åben en række af windows (virtuelle terminaler) i session. Processer, der kører på skærmen, fortsætter med at køre, når deres vindue ikke er synligt, selvom du bliver afbrudt.,

TMU. #

TMU. er et moderne alternativ til GNU screen. Med TMU.kan du også oprette en session og åbne flere vinduer inde i den session. TMU. – sessioner er vedholdende, hvilket betyder, at programmer, der kører i TMU., fortsætter med at køre, selvom du lukker terminalen.

konklusion #

for at køre en kommando i baggrunden skal du inkludere& i slutningen af kommandoen.

Når du kører en kommando i baggrunden, behøver du ikke vente, indtil den er færdig, før du kan udføre en anden.

Articles

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *