GNU/Linux >> Znalost Linux >  >> Linux

Bg, Fg, &, Ctrl-Z – 5 příkladů správy úloh na pozadí Unixu

Když spustíte unixový shell-script nebo příkaz, který trvá dlouho, můžete jej spustit jako úlohu na pozadí.

V tomto článku se podíváme na to, jak provést úlohu na pozadí, přenést úlohu do popředí, zobrazit všechny úlohy na pozadí a zrušit úlohu na pozadí.

1. Provádění úlohy na pozadí

Přidáním ampersandu ( &) k příkazu se úloha spustí na pozadí.

Když například spustíte příkaz find, jehož provedení může trvat dlouho, můžete jej umístit na pozadí, jak je znázorněno níže. Následující příklad najde všechny soubory v kořenovém systému souborů, které se změnily za posledních 24 hodin.

# find / -ctime -1 > /tmp/changed-file-list.txt &

2. Odeslání aktuální úlohy v popředí na pozadí pomocí CTRL-Z a příkazu bg

Již běžící úlohu v popředí můžete odeslat na pozadí, jak je vysvětleno níže:

  • Stisknutím kláves CTRL+Z pozastavíte aktuální úlohu v popředí.
  • Spusťte bg, aby se tento příkaz spustil na pozadí.

Pokud jste například zapomněli provést úlohu na pozadí, nemusíte zrušit aktuální úlohu a spustit novou úlohu na pozadí. Místo toho pozastavte aktuální úlohu a přesuňte ji na pozadí, jak je znázorněno níže.

# find / -ctime -1 > /tmp/changed-file-list.txt

# [CTRL-Z]
[2]+  Stopped                 find / -ctime -1 > /tmp/changed-file-list.txt

# bg

3. Zobrazte všechny úlohy na pozadí pomocí příkazu jobs

Úlohy na pozadí můžete vypsat příkazem úlohy . Ukázkový výstup příkazu jobs je

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

4. Převedení úlohy z pozadí do popředí pomocí příkazu fg

Úlohu na pozadí můžete přenést do popředí pomocí příkazu fg . Když je spuštěn bez argumentů, přenese do popředí nejnovější úlohu na pozadí.

# fg

Pokud máte více pozemních úloh na pozadí a chtěli byste přenést určitou úlohu do popředí, spusťte příkaz jobs, který zobrazí ID úlohy a příkaz.

V následujícím příkladu fg %1 přenese do popředí úlohu #1 (tj. download-file.sh).

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

# fg %1

5. Zabijte konkrétní úlohu na pozadí pomocí kill %

Pokud chcete ukončit použití konkrétní úlohy na pozadí, deaktivujte %job-number. Chcete-li například zabít úlohu 2, použijte

# kill %2

Chcete-li zabít úlohy v popředí, použijte jednu z metod uvedených v našem dřívějším článku 4 způsoby, jak zabít proces — kill, killall, pkill, xkill.


Linux
  1. 5 UNIX / Linux Příklady příkazů Traceroute

  2. 10 příkladů příkazů Cat pro správu souborů v systému Linux / UNIX

  3. příklady příkazů tail v UNIX/Linux

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

  2. Použití at pro jednorázové úlohy cron v Linuxu

  3. Jak získat ID procesu na pozadí?

  1. UNIX / Linux:10 příkladů příkazů Netstat

  2. 10 Příklady příkazů Xargs v Linuxu / UNIXu

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