Příkaz jobs v Linuxu umožňuje uživateli přímou interakci s procesy v aktuálním shellu.
Úlohy mají v Linuxu tři možné stavy:popředí, pozadí a zastaveno.
Co to znamená? Za chvíli vysvětlím více. Nejprve se podívejme na některé nástroje zabudované do příkazu Jobs.
Job Control má několik různých funkcí. Každý může být spuštěn nezávisle. Zde je tabulka příkazů souvisejících s Job Control.
Příkaz | Popis |
---|---|
práce | Uvádí seznam úloh v aktuálním prostředí |
bg %n | Odeslat proces na pozadí |
fg %n | Přenést proces do popředí |
V tabulce n představuje číslo odpovídajícího ID úlohy.
Porozumění ovládání úloh v Linuxu
Co je to vlastně práce? Práce, procesy a úkoly jsou slova, která se často používají zaměnitelně.
Ve skutečnosti existuje několik malých rozdílů, které jsou důležité pro přehlednost.
Rozdíl lze zredukovat na to, která entita úkoly zpracovává. Uživatelé vlastní úlohy, zatímco jádro vlastní procesy.
V Linuxu může být úloha jedním procesem nebo může mít mnoho potomků či podprocesů.
Příkladem toho může být úloha, která obsahuje několik řízených příkazů, jako je tento:
cat file1 | sort | uniq
Paresuje výstup souboru a třídí podle hodnoty uniq pomocí kombinace příkazů sort a uniq.
V osobních počítačích operační systém zpracovává většinu procesů automaticky. To je obvykle optimalizováno pro potřeby systému nebo prioritu daného úkolu. Tyto procesy dokončuje jádro a je jim přiděleno ID procesu (PID).
Jak ovládat úlohy v Linuxu
Když otevřete nový shell, máte možnost vytvářet vlastní úlohy. Ve skutečnosti se to stane, když zadáte jakýkoli příkaz (nebo sérii příkazů) do terminálu.
Na uživatelské úrovni – z prostředí Shell můžete ručně odesílat úlohy do práce na pozadí, přenést je do popředí nebo je pozastavit (pomocí Ctrl+z).
Pojďme tedy to, co jste se dosud naučili, uvést do praxe na několika příkladech.
Příklad 1:Odeslání úloh na pozadí
Odeslání úlohy do práce na pozadí je snadné. K příkazu stačí připojit & (ampersand).
[email protected]:~$ nano Linux_Handbook &
[1] 2860
Můžete vidět, že tento příkaz vrací číslo úlohy v závorkách. Následující číslo je ID procesu používané jádrem.
Příklad 2:Zobrazení úloh
Pokud jste se pokusili zadat příkaz jobs, možná vás zmátlo, že se nic nedělo. Důvodem je, že v prostředí nebyly žádné aktivní úlohy. Nyní, když máte spuštěnou úlohu, můžete úspěšně spustit příkaz jobs.
[email protected]:~$ jobs
[1]+ Stopped nano Linux_Handbook
Číslo PID zde není uvedeno, ale nepotřebujete ho. Úlohy řídíte pomocí ID úlohy specifického pro uživatele/shell.
Příklad 3:Přenést úlohy do popředí
Toto ID úlohy můžete použít k uvedení vaší instance nano do popředí.
[email protected]:~$ fg %1
Pokud jste to sledovali, mělo by vás to přivést do Nano s vaším souborem s názvem Linux Handbook.
Příklad 4:Zastavení úlohy pomocí Ctrl+z
Otevřené úlohy můžete zastavit pomocí Ctrl+z. Zde je snímek obrazovky, který ukazuje, jak to použít s top.
Na záznamu obrazovky můžete sledovat, jak otevřu horní část, pomocí Ctrl+z jej pozastavit, zobrazit v seznamu mých úloh a poté jej vrátit zpět do popředí, než jej zavřete.
Příklad 5:Spouštění úloh na pozadí pomocí bg
I když můžete úlohy odeslat na pozadí pomocí symbolu &, vždy je dobré mít alternativu. Ve screencastu jste mě sledovali, jak zastavím úlohu pomocí ctrl+z. Vrátil jsem úlohu zpět do shellu a do popředí pomocí fg %n příkaz. Totéž můžete provést pomocí bg .
Budu používat GUI aplikaci jen pro přepnutí věcí. Možná jste si v minulosti všimli, že když otevřete GUI z terminálu, že pokud terminál zavřete, GUI se také zavře. Doufejme, že vám tento článek objasnil, proč k tomu dochází.
Takže použijme Gedit. Udělám následující:
- Spusťte Gedit
- Vraťte se do prostředí a stiskněte Ctrl+z
- Pošlete jej do pozadí ke spuštění pomocí bg
- Zkontrolujte můj seznam úloh a ověřte, že je spuštěný
- Vraťte se do popředí a odešlete přerušení systému pomocí Ctrl+c k ukončení
[email protected]:~$ gedit
^Z
[1]+ Stopped gedit
[email protected]:~$ bg %1
[1]+ gedit &
[email protected]:~$ jobs
[1]+ Stopped gedit
[email protected]:~$ fg %1
gedit
^C
Bonusový tip pro ukončení úloh v Linuxu
Mnoho z nás je zvyklých používat ctrl+c k ukončení úloh v shellu. Existuje další způsob, jak toho dosáhnout, než začlenění vašich nových znalostí o ovládání práce.
[email protected]:~$ fg %1
gedit
^Z
[1]+ Stopped gedit
[email protected]:~$ kill %1
Správně, příkaz kill lze použít spolu s ID úlohy také k ukončení úlohy.
Závěr
Naučení se příkazového řádku Linuxu nás přibližuje k vnitřnímu fungování našeho oblíbeného operačního systému. Řízení výukových úloh nám dává možnost zvládnout více úloh najednou.
Doufám, že jste v tomto článku našli něco nového k prozkoumání. Pokud se vám to líbilo, dejte nám prosím vědět v sekci komentářů níže nebo použijte odkazy ke sdílení na sociálních sítích.