Přejít na hlavní obsah

Jak spustit skript na pozadí v Linuxu

Spuštění skriptů na pozadí může být velmi užitečné, zejména v případech, kdy potřebujete provést dlouhou operaci, ale nechcete, aby blokovala váš terminal. Na Linuxu to lze provést pomocí několika speciálních znaků a příkazů.

Jedním ze způsobů, jak spustit skript na pozadí, je použití ampersandu (&) na konci příkazu. Například:

Když stisknete Enter, skript se spustí na pozadí a můžete pokračovat v provozu v terminálu, aniž byste čekali na jeho dokončení. Buďte však opatrní, protože ve svém terminálu nezískáte výstup skriptu. Pokud potřebujete přístup k pin skriptu, můžete jej přesměrovat do souboru pomocí znaku redirect ( > ), například:

Můžete také použít příkaz nohup, který vám umožní spouštět procesy, které zůstávají aktivní i po dokončení relace připojení. Například:

Nyní, když zavřete svůj terminal, skript bude nadále fungovat. Jeho výstup bude přesměrován do souboru nohup.out, abyste si to mohli později prohlédnout.

Spuštění skriptů na pozadí vám dává flexibilitu a pohodlí při práci na Linuxu. Nyní znáte několik způsobů, jak to udělat, a můžete si vybrat ten nejvhodnější pro vaše úkoly.

Metody spouštění skriptu na pozadí v Linuxu

Linux poskytuje různé metody pro spuštění skriptu na pozadí, což uživateli umožňuje pokračovat v interakci se systémem a provádět další úkoly. Zde je několik způsobů, jak spustit skript na pozadí v Linuxu:

Jedním z nejjednodušších způsobů, jak spustit skript na pozadí, je použít symbol & na konci příkazu. Například:

python script.py &

To umožňuje skript spustit v pozadí a můžete pokračovat v práci v terminálu.

nohup

Příkaz nohup umožňuje spustit skript, který bude pokračovat v provádění i po uzavření terminálu:

nohup python script.py &

To je užitečné, pokud chcete skript spustit v pozadí bez ohledu na vaše připojení k systému.

at

Příkaz at vám umožňuje naplánovat spuštění skriptu na určitou dobu:

echo "python script.py" | at 10:00 AM

To je užitečné, pokud chcete skript spustit na pozadí v určitou dobu.

screen

Nástroj screen vám umožňuje vytvářet virtuální terminály v Linuxu. Skript můžete spustit ve virtuálním terminálu a poté se od něj odpojit, aby se skript nadále spouštěl na pozadí. Zde je návod, jak to udělat:

screenpython script.py

Chcete-li se odpojit od virtuálního terminálu, stiskněte CTRL+A a poté stiskněte D.

Chcete-li se znovu připojit k virtuálnímu terminálu, spusťte příkaz:

screen -r

To je jen několik způsobů, jak spustit skript na pozadí v Linuxu. Vyberte si ten nejvhodnější pro vaše potřeby a Usnadněte si práci se systémem.

Použití symbolu"&"

V Linuxu se symbol " & " používá ke spouštění příkazů nebo skriptů na pozadí. Při použití tohoto symbolu po příkazu, bude spuštěn v pozadí a budete moci pokračovat v práci v terminálu bez čekání na dokončení příkazu.

Chcete-li například spustit skript s názvem "script.sh " na pozadí, můžete použít následující příkaz:

Tímto způsobem bude skript spuštěn v pozadí a budete moci pokračovat v terminálu.

Chcete-li zjistit, které procesy běží na pozadí, můžete použít příkaz "jobs". Zobrazí seznam aktivních úkolů na pozadí a jejich stav.

Pokud potřebujete přerušit provádění úkolu na pozadí, můžete k jeho zastavení použít příkaz "fg" a "Ctrl+C".

Použití symbolu " & " je velmi užitečné, když potřebujete spustit dlouhé operace nebo skripty, aniž byste blokovali terminál pro jinou práci. Buďte však opatrní, protože pokud nemáte kontrolu nad procesy na pozadí, může to vést ke ztrátě zdrojů nebo neočekávaným výsledkům.

Použití příkazu "nohup"

Příkaz "nohup" umožňuje spouštět skripty na pozadí v operačním systému Linux a ignoruje signály ukončení programu. To je užitečné, když je nutné pokračovat ve spouštění skriptu i po ukončení relace terminálu nebo po zapnutém automatickém ukončení relace.

Chcete-li použít příkaz "nohup", musíte jej zadat před spuštěním skriptu takto:

nohup název_skript [důvody] &

  • název_skript - plná cesta k spustitelnému souboru nebo příkazu, který chcete spustit;
  • [důvody] - další argumenty, které je třeba předat skriptu;
  • & - znak ampersandu označuje spuštění příkazu na pozadí.

Například spustit skript " my_script.sh "s argumenty" arg1 " a "arg2" na pozadí, je třeba zadat:

nohup my_script.sh arg1 arg2 &

Po provedení příkazu bude skript pokračovat ve své práci, ať už je terminál uzavřen nebo bylo připojení dokončeno.

Při použití příkazu "nohup" se proces výstupu příkazu zapíše do souboru nohup.out v aktuálním pracovním adresáři. Pokud chcete uložit výstup do samostatného souboru, můžete jej přesměrovat na jiné místo přidáním " > " a názvu souboru za příkazem:

nohup my_script.sh arg1 arg2 > output.log &

Nyní bude výstup příkazu přidán do souboru " output.log".

Použití nástroje "screen"

Chcete-li spustit skript na pozadí pomocí "screen", postupujte podle následujících kroků:

  • Otevřete terminál a zadejte příkaz "screen" pro vytvoření nové virtuální relace.
  • Spusťte skript jako obvykle.
  • Stiskněte klávesu " Ctrl + A "a poté" d "pro sbalení relace"screen".
  • Nyní můžete zavřít terminálové okno nebo dokonce přerušit připojení k serveru, aniž byste zastavili spuštěný skript.

Chcete-li se znovu vrátit k relaci "screen" a pokračovat v práci se skriptem, spusťte příkaz "screen-r".

Nástroj "screen" také nabízí mnoho dalších funkcí, jako je rozdělení obrazovky, nahrávání relace a správa více oken najednou. Více informací o příkazech "screen" najdete v dokumentaci.

Použití nástroje "screen" umožňuje výrazně zjednodušit a zlepšit práci s procesy na pozadí Na Linuxovém serveru a zajistit jejich stabilitu a sledovatelnost.

Varování: Je důležité si uvědomit, že" screen " není plnohodnotným Správcem úloh a není navržen tak, aby spouštěl dlouhověké procesy, jako jsou démoni. Pro tyto úkoly se doporučuje použít jiné nástroje, jako je" systemd "nebo"supervisor".