GNU/Linux >> Znalost Linux >  >> Linux

Jak spravovat úlohy na pozadí Linuxu pomocí příkazů fg a bg

V systémech Linux a Unix je úloha definována jako úloha, která začala běžet a dosud nebyla dokončena. Každá úloha je v podstatě spuštěný program, což je proces.

Každé úloze je přiřazeno jedinečné ID nazývané číslo úlohy (Job ID). Úlohy můžeme spouštět na pozadí bez jakéhokoli zásahu uživatele a také je lze spouštět na popředí jako aktuální úlohy.

V tomto tutoriálu se seznámíme s příkazy fg a bg pro správu úloh v Linuxu.

příkaz bg

Procesy, které byly zastaveny nějakým signálem přerušení, mohou pokračovat na pozadí příkazem bg.

$ nautilus
^Z
[1]+ Stopped nautilus

Tento proces byl zastaven pomocí ctrl+z signál přerušení. Zastavené procesy lze zkontrolovat pomocí příkazu jobs. Před kontrolou však vytvořte další úlohu a přerušte ji signálem zastavení.

$ jedit
9:22:28 AM [main] [warning] jEdit: inifPLAF failed to set required l&f
9:22:29 AM [main] [warning] jEdit: inifPLAF failed to set required l&f
^Z
[2]+ Stopped jedit

$ jobs
[1]- Stopped nautilus
[2]+ Stopped jedit

Můžete vidět, že stav úloh je zastaven. Znaménko plus (+) označuje aktuální úlohu. Znaménko mínus (-) odkazuje na předchozí zakázku. Nyní, ke spuštění zastavené úlohy na pozadí, použijeme příkaz bg. Ve výchozím nastavení, pokud není zadán žádný argument, bg spustí aktuální úlohu na pozadí.

$ bg
[2]+ jedit &
$ jobs
[1]+ Stopped nautilus
[2]- Running jedit &

Příkaz bg může vzít jako argument číslo úlohy. Číslo úlohy je uvedeno v hranatých závorkách ve výstupu úloh.

Ve výše uvedeném příkladu je číslo úlohy nautilus 1. Nyní tedy toto číslo úlohy použijeme ke spuštění úlohy na pozadí. % pro uvedení čísla úlohy je vyžadován znak.

$ bg %1
[1]+ nautilus &

$ jobs
[1]- Running nautilus &
[2]+ Running jedit &

Příkaz bg může také odkazovat na úlohu jejím jménem. Například %String odkazuje na úlohu, jejíž název začíná zadaným řetězcem a %?String odkazuje na úlohu, jejíž název obsahuje zadaný řetězec.

Pro ilustraci máme dvě zastavené úlohy.

$ jobs
[1]+ Stopped nautilus
[2]- Stopped jedit

$ bg %nau
[1]+ nautilus &

$ jobs
[1]- Running nautilus &
[2]+ Stopped jedit

$ bg %?ed
[2]+ jedit &

$ jobs
[1]- Running nautilus &
[2]+ Running jedit &

příkaz fg

Příkaz fg je jako příkaz bg až na to, že místo odesílání příkazu na pozadí je spouští v popředí a zabírá aktuální terminál a čeká na ukončení procesu.

# jobs
[1]- Stopped makewhatis
[2]+ Stopped vi

Bez jakéhokoli argumentu spustí fg aktuální úlohu na popředí (v tomto případě vi).

# fg
vi

Protože příkaz běží v popředí, nedostaneme zpět terminál, dokud příkaz neukončí. Takže příkaz jobs bude nyní zobrazovat pouze jednu úlohu, protože vi bude nyní ukončeno.

# jobs
[1]+ Stopped makewhatis

# fg %1
makewhatis

# jobs

Žádná zbývající práce. Jako bg, %String a %?String pracovat také pro fg.

# jobs
[1]- Stopped makewhatis
[2]+ Stopped vi

# fg %v
vi

# fg %?what
makewhatis

Závěr

V tomto tutoriálu jsme se na několika příkladech naučili, jak ovládat úlohy pomocí příkazů fg a bg. Doufám, že se vám to líbilo a zanechte prosím své návrhy v sekci komentářů níže.


Linux
  1. Jak spravovat a vypisovat služby v Linuxu

  2. Jak používat Pipes a Named Pipes v Linuxu (s příklady)

  3. Jak spravovat historii příkazů Linuxu

  1. Jak spustit příkaz Linux na pozadí a odpojit proces v terminálu

  2. Jak naplánovat úlohy pomocí příkazu „at“ v systému Linux

  3. jobs Možnosti příkazů V Linuxu

  1. Jak zachytit a analyzovat pakety pomocí příkazu tcpdump v systému Linux

  2. Linuxové příkazy:jobs, bg a fg

  3. Jak spravovat služby Linux pomocí příkazu systemctl