Jak zobrazit a spouštět procesy na pozadí Linuxu

Provádění procesů je zásadní v každém používaném operačním systému, protože zajišťují, že aplikace i další prvky operačního systému mohou jednat správným způsobem jak v kompatibilitě, tak při provádění jejich funkcí.

Každý operační systém může zpracovávat procesy jinak, ale v případě Linuxu jsou procesy zpravidla spojeny s terminálem. To znamená, že musí být otevřený, aby proces mohl fungovat normálně, ale tato akce může vést k situacím, jako jsou:

  • Otevřený terminál může obsahovat mnoho výstupních dat nebo chybových / diagnostických zpráv, což ztěžuje nejen čtení dat, ale i jejich správu.
  • Pokud bychom terminál zavřeli, proces spolu s jeho sekundárními procesy skončí přímo ovlivňujícím úkol, který má být proveden.

V tomto typu scénáře je nezbytné provést potřebné procesy na pozadí, proces na pozadí je proces, který bude prováděn skrytým způsobem a pro jeho provoz není vyžadován zásah uživatele, tímto způsobem, ačkoli terminál je uzavřen hlavní, proces bude pokračovat ve vykonávání svého úkolu. Procesy na pozadí se týkají těch úkolů, které mohou nějakou dobu trvat, jako jsou skripty, stahování souborů a další, kde nemůžeme čekat, až se akce dokončí, aniž byste cokoli udělali.

V linuxu můžeme provádět procesy v popředí nebo na pozadí. Program v popředí, když je spuštěn v terminálu, nebudeme moci provést žádný jiný příkaz, dokud proces neskončí, ale lze to provést z pozadí nebo pozadí.

Program, který po spuštění běží na pozadí, nepoužívá terminál od jeho spuštění až do konce. Chcete -li spustit software nebo příkaz na pozadí z terminálu, přidáme Pokud na konec příkazu nebo skriptu, který chceme spustit, přidáme ampersand (&), bude spuštěn na pozadí operačním systémem. Příklad:

 nano & 
Solvetic vysvětlí, jak můžeme v Linuxu vidět a spouštět procesy na pozadí.

1. Viz seznam procesů s příkazem ps v Linuxu


Pomocí příkazu ps můžeme zjistit stav procesu. Ps je stav procesu nebo stav procesu. Příkaz ps neuvádí seznam procesů a určuje některé sloupce PID, TTY, TIME a CMD.

PID (číslo procesu)Každý proces dostane jedinečné identifikační číslo, které mu přidělí linuxové jádro.

TTYje terminál spojený s procesem, může to být také jiné vstupní zařízení.

ČASČas, kdy byl proces spuštěn.

CMDJe to název příkazu, který se provádí, bash je proces shellu.

Například příkazem ps -A nám ukáže všechny spuštěné procesy.

2. Spusťte proces nebo příkaz na pozadí v systému Linux pomocí příkazu bg v systému Linux


Příkaz bg byl vyvinut jako příkaz řízení úloh, který obnovuje pozastavené úlohy, ale spouští je na pozadí.

Krok 1
Základní syntaxe tohoto příkazu je následující:

 bg [práce] 
Krok 2
V případě, že je proces již spuštěn, musíme jej zastavit pomocí následujících kláves a poté zadat příkaz bg, abychom mohli pokračovat v jeho provádění na pozadí jako úloha. Pro tento příklad použijeme následující řádky:

Ctrl + Z

 tar -czf home.tar.gz. (běžící proces, který bude zastaven pomocí Ctrl + Z) bg (provádění příkazu na pozadí) úlohy (vizualizace provedených úloh)

Krok 3
Vidíme, že proces stále běží, ale nyní na pozadí. Proces bude také možné spustit přímo na pozadí zadáním ampersandu na jeho konci:

 tar -czf home.tar.gz. & Pracovní místa 

3. Po ukončení terminálu v Linuxu uložte spuštěné procesy Linuxu


Toto je zásadní bod, protože, jak jsme zmínili, v normálním režimu, kdy je terminál zavřený, všechny aktivní procesy skončí, takže je možné jim umožnit pokračovat v provozu, i když je terminál zavřený.

K tomuto účelu můžeme použít příkaz disown, který bude použit poté, co byl proces spuštěn a byl vložen na pozadí, příkaz disown je úloha shellu, jejímž úkolem je odstranit úlohy z aktivního seznamu aktivního prostředí.

Krok 1
Když provedeme disown, když zavřeme terminál, úloha se nesrazí ani neodesílá PŘEHLED na žádnou podřízenou úlohu. Jeho základní syntaxe je:

 disown jobID 
Krok 2
Pro jeho provoz provedeme následující:
 sudo rsync Šablony / * / var / www / html / soubory / & (příkaz ke spuštění) úlohy (aktivní úlohy) disown -h% 1 (příkaz neuzavřít proces nebo příkaz) úlohy (zobrazení úloh)

PoznámkaV případě provádění více než jednoho procesu nebo příkazu vidíme, že každý z nich obdrží identifikační ID, které je třeba zadat s odmítnutím a určit, který proces bude pokračovat v běhu.

Krok 3
Možnosti, které lze použít při odmítnutí, jsou:

-naOdebere všechny úlohy, pokud není zadáno ID úlohy.

-hOznačí každé ID úlohy, aby nebyl SIGHUP odeslán do úlohy, pokud shell obdrží SIGHUP.

-rVymaže pouze spuštěné úlohy.

4. Po ukončení terminálu v Linuxu uložte spuštěné procesy Linuxu


Základním úkolem příkazu nohup je zabránit automatickému zrušení příkazu při odhlášení nebo ukončení shellu. Při použití příkazu nohup (žádné zavěšení) je signál zavěšení (HUP), který je odeslán do procesu, aby ho informoval, že se uživatel odhlásil, zachycen nohupem, aby proces mohl pokračovat v běhu několika sekund.

Krok 1
Syntaxe použití je následující:

 příkaz nohup [argument-příkaz …] 
Krok 2
Pro tento případ použijeme následující příklad. Pokud je standardním vstupem terminál, nohup ho přesměruje z / dev / null. Terminálový vstup proto není možný při spuštění příkazu s nohup. V případě, že je standardním výstupem terminál, je výstup příkazu přidán do souboru nohup.out nebo $ HOME / nohup.out. Pokud je standardní chybou terminál, je přesměrován na standardní výstup. Pro uložení výstupu do souboru musíme použít „nohup příkaz> soubor“.
 nohup tar -czf iso.tar.gz Šablony / * a úlohy

5. Odpojte proces Linux v terminálu

Krok 1
Pokud je cílem zcela oddělit proces od terminálu, měli bychom použít následující syntaxi:

 aplikace / dev / null & 
Krok 2
Například:
 firefox / dev / null & 

6. Používejte procesy pozadí s Screen na Linuxu


V případě použití příkazu na pozadí, s možnostmi nohup a &), bude proveden i po ukončení relace, problém je v tom, že když se znovu připojíme ke stejné relaci, neuvidíme aktivní úlohu v pozadí, aby se to napravilo, je zde příkaz obrazovky.

obrazovka je správce oken na celou obrazovku, který spravuje fyzický terminál mezi několika procesy, přičemž prostředí je obvykle interaktivní. Každý virtuální terminál nabízí funkce terminálu DEC VT100 a navíc několik řídicích funkcí standardů ISO 6429 (ECMA 48, ANSI X3.64) a ISO 2022, díky nimž je extrémně dynamický.

Když spustíme obrazovku, vytvoří se jedno okno pomocí shellu nebo zadaného příkazu a poté se obejde, aby bylo možné program normálně používat.

Krok 1
K instalaci obrazovky v Linuxu provedeme následující. Tam zadáme písmeno S pro potvrzení stažení a instalace.

 obrazovka instalace sudo apt

Krok 2
Po instalaci spustíme příkaz „obrazovka“ a uvidíme následující:

Krok 3
Tam stiskneme klávesu Enter, abychom byli přesměrováni do nového okna, kde spustíme proces nebo příkaz, který použijeme na pozadí:

 sudo tar czf temp.tar.gz / tmp & 

Krok 4
Aktivní okna budeme moci vizualizovat pomocí. K ukončení relace obrazovky můžeme použít klávesy

Ctrl + a + d

Ctrl + alt + d

 obrazovka -ls 

7. Zastavte nebo zabijte pozastavený proces nebo proces na pozadí v systému Linux


Pro tuto akci, která spočívá v ukončení provádění procesu na pozadí, můžeme použít příkaz „zabít“ a místo PID můžeme zadat identifikátor úlohy, například:
 jobs (list current jobs) kill% 2 (kill or terminate process identifies as 2)

8. Zastavte proces nebo vezměte proces na pozadí


Dokončení některých programů trvá dlouho a mezitím nedělají nic důležitého. Kompilace programů je jednou z těchto úloh, stejně jako komprimace velkého souboru. Když tyto procesy končí a spotřebovávají prostředky, nemá smysl používat počítač. V těchto případech je lepší spustit je na pozadí, nechat počítač v pozici, ve které lze spustit jiný program.

Procesy lze pozastavit. Pozastavený proces je ten, který právě neběží, ale je dočasně zastaven. Po pozastavení úkolu můžete úkolu přikázat, aby pokračoval podle potřeby v popředí nebo sekundě. Obnovení pozastaveného úkolu vůbec nezmění stav úkolu, protože bude pokračovat v provádění přesně tam, kde skončil.

Krok 1
K přerušení procesu se používá následující kombinace, při stisknutí této kombinace proces zemře a uvolní se všechny prostředky.

Ctrl + C.

Krok 2
Zkusme poslat opakující se příkaz na pozadí. Příkaz yes se používá k testování skriptu, který vyžaduje mnoho potvrzení. Co dělá, je opakovat "a" s čímkoli, co je před ním napsáno nekonečně, dokud se skript nezastaví nebo jej uživatel nezastaví:

  • Pokud do terminálu napíšeme „ano“ a uvidíme nekonečný seznam „a“.
  • Pokud do terminálu napíšeme yes ahoj a uvidíme nekonečný seznam ahoj

Krok 3
K odstranění souboru bez stisknutí libovolné klávesy, když požádá o potvrzení, můžeme použít

 ano | rm -i * .txt 
Krok 4
Chcete -li odeslat proces na pozadí, nazýváme jej z příkazového řádku a za ním & vytvořit nekonečná nulová zařízení
 ano> / dev / null & 
Krok 5
To nám ukáže číslo úkolu a pid [1] 4106. Pokud nyní použijeme příkaz jobs, uvidíme
 [1] + Provádění ano> / dev / null &
Krok 6
abychom to dostali do popředí, napíšeme fg 1 a zabijeme proces kill 4106, což je pid.
 Fg 1 Zabijte 4106
S jakoukoli z uvedených možností bude možné řídit procesy na pozadí v Linuxu mnohem centrálnějším způsobem a umožnit tak provedení požadovaných úloh, i když je relace uzavřena.

wave wave wave wave wave