GNU/Linux >> Znalost Linux >  >> Linux

Spouštění příkazů Linuxu na pozadí a v popředí

Pokud máte dlouhotrvající úkol, není vždy rozumné čekat na jeho dokončení. Chci říct, proč udržovat terminál obsazený pro konkrétní příkaz? V Linuxu můžete odeslat příkaz nebo proces na pozadí, takže příkaz bude spuštěn, ale terminál bude mít možnost spouštět další příkazy.

V tomto tutoriálu vám ukážu několik způsobů, jak odeslat proces na pozadí. Také vám ukážu, jak vrátit procesy na pozadí zpět do popředí.

Přímé spuštění procesu Linuxu na pozadí

Pokud víte, že příkaz nebo proces bude trvat dlouho, bylo by lepší spustit příkaz na pozadí.

Chcete-li spustit příkaz Linuxu na pozadí, vše, co musíte udělat, je přidat ampersand (&) na konec příkazu, například takto:

your_command &

Vezměme jednoduchý příkaz spánku bash a odešleme jej na pozadí.

sleep 60 &

Když příkaz skončí na pozadí, měli byste o tom vidět informace na terminálu.

[1]+  Done                    sleep 60

Odeslat běžící proces Linux na pozadí

Pokud jste již spustili program a pak jste si uvědomili, že jste jej měli spustit na pozadí, nemějte obavy. Můžete také odeslat běžící proces na pozadí.

Zde musíte použít Ctrl+Z pozastavit běžící proces a poté použít „bg ‘ (zkratka pro pozadí) pro odeslání procesu na pozadí. Pozastavený proces nyní poběží na pozadí.

running_command
^z
bg

Vezměme si stejný příklad jako předtím.

[email protected]:~$ sleep 60
^Z
[1]+  Stopped                 sleep 60
[email protected]:~$ bg
[1]+ sleep 60 &

Zobrazit všechny procesy běžící na pozadí

Nyní, když víte, jak odeslat procesy na pozadí, možná vás bude zajímat, které příkazy běží na pozadí.

Za tímto účelem můžete do terminálu zadat tento příkaz:

jobs

Nejprve dáme nějaké příkazy na pozadí.

firefox &
gedit &
vim &

Nyní vám příkaz jobs ukáže všechny spuštěné úlohy/procesy/příkazy na pozadí takto:

jobs
[1]   Running                 firefox &
[2]-  Running                 gedit &
[3]+  Stopped                 vim

Všímáte si čísel [1], [2] a [3] atd.? Toto jsou pracovní ID. Také byste si všimli znaménka – a + na dvou z příkazů. Znak + označuje poslední úlohu, kterou jste spustili nebo přešli na popředí. Znak – označuje předposlední úlohu, kterou jste spustili nebo uvedli v popředí.

Přenést proces do popředí v Linuxu

V pořádku! Takže jste se naučili spouštět příkazy na pozadí v Linuxu. Ale co takhle přenést proces běžící na pozadí znovu do popředí?

K odeslání příkazu na pozadí jste použili „bg“. Chcete-li vrátit proces na pozadí zpět, použijte příkaz „fg“.

fg

Pokud nyní jednoduše použijete fg, přenese do popředí poslední proces ve frontě úloh na pozadí. V našem předchozím příkladu spuštění ‚fg‘ vrátí editor Vim zpět do terminálu.

Pokud chcete do popředí dostat určitý proces, musíte zadat jeho ID úlohy. ID úlohy je číslo, které vidíte na začátku každého řádku ve výstupu příkazu „jobs“.

fg n

Kde n je ID úlohy zobrazené ve výstupu úloh příkazu.

To je ono

Bylo to rychlé, ale dost na to, abyste se naučili pár věcí o spouštění příkazů na pozadí v Linuxu. Doporučil bych naučit se také příkaz nohup. Tento příkaz vám umožňuje spouštět příkazy na pozadí i po odhlášení z relace.

Máte-li dotazy nebo návrhy, zanechte prosím níže komentář.


Linux
  1. Sledujte příkazy a úkoly pomocí příkazu watch v systému Linux

  2. Linuxové příkazy – přehled a příklady

  3. Linuxový příkaz echo

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

  2. 5 způsobů, jak spouštět příkazy UNIX / Linux (a skripty Shell) na pozadí

  3. Porozumění základním příkazům Linuxu

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

  2. Jak uložit příkazy Linuxu a používat je na vyžádání

  3. 5 Linuxových příkazů, které nikdy nepoužívám