GNU/Linux >> Znalost Linux >  >> Linux

Jak pracovat s procesem v popředí a na pozadí v Linuxu

Při práci s procesem Linux je důležité porozumět tomu, co je popředí a pozadí proces a jak je ovládat. Pokud v Linuxu spustíte nějaké programy, vytvoří se proces s jedinečným ID (PID ) a ve výchozím nastavení proces běží v popředí .

Vezměme si jednoduchý příkaz curl – když odešlete požadavek na stažení souboru zip přes internet, stočí poběží jako popředí procesu a všechny výstupy se zobrazí v terminálu.

Než začnete pracovat s pozadí, musíte porozumět dvěma důležitým klávesovým úhozům a popředí proces.

  • CTRL+Z – Toto stisknutí klávesy zastaví běžící proces.
  • CTRL+C – Toto stisknutí klávesy ukončí běžící proces a uvolní paměť v RAM.

Proces linuxového popředí

Proces při spuštění z terminálu ve výchozím nastavení běží jako popředí proces. Popředí proces vám neumožní používat terminál, dokud nebude proces dokončen. V tomto případě, pokud potřebujete přístup zpět ke svému terminálu, musíte otevřít nové okno terminálu nebo zastavit běžící proces nebo jej zabít.

Je také důležité poznamenat, že jakýkoli proces vytvořený prostřednictvím terminálu je připojen k relaci terminálu a proces bude ukončen, jakmile bude terminál uzavřen. Důvodem je, že bash je nadřazený proces a jakýkoli příkaz, který spustíte v terminálu, bude podřízeným procesem bash, takže když zavřete nadřazený proces terminálu (bash) automaticky ukončí všechny své podřízené procesy a své vlastní.

Níže je uveden příklad procesu v popředí. Toto je jen jednoduchý příkaz spánku to vrátí výzvu uživateli až po jejím dokončení.

$ sleep 10000

Nyní mám několik možností, jak získat kontrolu zpět do příkazového řádku terminálu. Buď musím zrušit nebo zastavit proces, nebo otevřít novou kartu terminálu. Když zastavíte běžící proces stisknutím (CTRL+Z) získáte výstup, jak je znázorněno na obrázku níže.

Chcete-li získat seznam úloh v spuštěném nebo zastaveném stavu, můžete spustit níže uvedený příkaz.

$ jobs -l

Na obrázku výše můžete vidět příkaz úlohy vám poskytne ID procesu , jaký příkaz jste odeslali, jaký je jeho stav. Získáte také ID úlohy pro každý proces, který odešlete ( [1], [2] [3] atd..).

Chcete-li spustit úlohu, která je ve stavu zastaveno, nebo přenést úlohu na pozadí do popředí, spusťte následující příkaz.

$ fg %4     

Kde %4 označuje ID úlohy, které můžete získat z příkazu „jobs -l“.

Proces na pozadí Linuxu

Proces na pozadí běží váš proces na pozadí a nepřevezme kontrolu nad vaší terminálovou výzvou. Můžete zahájit relaci a svůj terminál můžete volně používat. Chcete-li odeslat příkaz jako proces na pozadí, musíte přidat & symbol na konci příkazu.

$ sleep 50000 &

Příkaz Run jobs pro získání seznamu úloh.

$ jobs -l

Na obrázku níže můžete vidět ID úlohy [5] je přiřazen k úloze a & symbol říká, že je odeslána a spuštěna jako úloha na pozadí.

Jakoukoli zastavenou úlohu můžete spustit na pozadí přímo spuštěním následujícího příkazu.

$ bg %2 

Kde %2 označuje ID úlohy, které můžete získat z „jobs -l “.

To je pro tento článek vše. Pokud máte nějakou zpětnou vazbu nebo návrh, zanechte je v poli komentáře.


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

  2. Jak předvánočně upravit váš linuxový terminál a Shell

  3. Flatpak na Linuxu:Co to je a jak s ním instalovat aplikace

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

  2. Jak najít a zabít zombie proces v Linuxu

  3. Jak zachytit terminálové relace a výstup pomocí příkazu skriptu Linux

  1. Jak pracovat s uživateli a skupinami v Linuxu

  2. Jak pozastavit a přenést proces na pozadí do popředí?

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