Výukový program pro příkaz Bash nohup
Význam nic je 'žádné zavěšení''. Normálně, když se odhlásíme ze systému, jsou všechny spuštěné programy nebo procesy zavěšeny nebo ukončeny. Chcete-li spustit jakýkoli program po odhlášení nebo ukončení z operačního systému Linux, musíte použít příkaz nohup. Existuje mnoho programů, jejichž dokončení vyžaduje mnoho hodin. K dokončení úkolu příkazu se nemusíme dlouho přihlašovat. Tento typ programů můžeme nechat běžet na pozadí pomocí příkazu nohup a výstup zkontrolovat později. Příkladem použití příkazu nohup je kontrola paměti, restart serveru, synchronizace atd. Jak můžete použít nohup v tomto tutoriálu je uveden příkaz na Ubuntu ke spuštění programu na pozadí.
Verzi příkazu nohup můžete zkontrolovat pomocí následujícího příkazu.
$ nohup - verze
syntaxe příkazu nohup:
Příkaz nohup můžete použít dvěma způsoby.
- příkaz nohup [args…]
- možnost nohup
Používání nohup s příkazy
Příklad 1: Použití příkazu nohup bez znaku &
Když spustíte příkaz nohup bez '& ' poté se vrátí do příkazového řádku prostředí bezprostředně po spuštění konkrétního příkazu na pozadí. V následujícím příkladu, nic běh bash příkaz bez '&' k provedení sleep1.sh soubor na pozadí. Výstup z nic příkaz zapíše nic.ven soubor, pokud v souboru není uveden název přesměrování nic příkaz. U následujícího příkazu můžete zkontrolovat výstup sleep1.sh kontrolou výstupu nohup.mimo soubor.
$ nohup bash sleep1.sh$ kočka nohup.ven
Příkaz můžete provést následujícím způsobem, abyste přesměrovali výstup na výstup.txt soubor. Zkontrolujte výstup výstup.txt.
$ nohup bash sleep2.sh> výstup.txt$ kočičí výstup.txt
Příklad 2: Použití příkazu nohup s '&'
Když nic použití příkazu s '& ' poté se po spuštění příkazu na pozadí nevrátí do příkazového řádku prostředí. Ale pokud chcete, můžete se vrátit do příkazového řádku shellu zadáním 'fg '
$ nohup bash sleep1.sh &$ fg
Příklad 3: Použití příkazu nohup ke spuštění více příkazů na pozadí
Pomocí příkazu nohup můžete spustit více příkazů na pozadí. V následujícím příkazu jsou příkazy mkdir a ls prováděny na pozadí pomocí příkazů nohup a bash. Výstup příkazů můžete získat kontrolou výstupu.soubor txt.
$ nohup bash -c 'mkdir myDir && ls'> výstup.txt$ kočičí výstup.txt
Příklad 4: Spusťte libovolný proces na pozadí pomocí nohup
Když se spustí jakýkoli proces a uživatel zavře terminál před dokončením úlohy spuštěného procesu, proces se normálně zastaví. Pokud spustíte proces bez nohup, bude schopen spustit proces na pozadí bez jakéhokoli problému. Například pokud spustíte ping normálně pak ukončí proces, když zavřete terminál.
$ ping -i 10 google.com
Seznam všech spuštěných příkazů můžete zkontrolovat pomocí příkazu pgrep. Zavřete terminál. Znovu otevřete terminál a spusťte pgrep příkaz s -A volba. Nezobrazí se žádný seznam spuštěných příkazů, protože všechny spuštěné příkazy jsou ukončeny, když byl terminál uzavřen.
$ pgrep -a ping
Běh ping příkaz s příkazem nohup. Znovu otevřete terminál a spusťte pgrep znovu povel. Získáte seznam spuštěných procesů s ID procesu.
$ nohup ping -i 15 google.com &$ pgrep -a ping
Jakýkoli proces na pozadí můžete zastavit spuštěním příkazu kill. Stačí spustit příkaz kill s konkrétním spuštěným ID procesu. Zde je ID procesu běžícího procesu 7015. Spuštěním příkazu kill v 7015 ukončete proces.
7015 $ zabití
Použití příkazu nohup je vysvětleno pomocí velmi jednoduchých příkladů v tomto výukovém programu. Doufám, že získáte jasnou představu o funkci příkazu nohup a budete moci tento příkaz použít pro různé účely.