logo

Príkaz nohup v systéme Linux s príkladmi

Každý príkaz v Linuxe spúšťa proces v čase jeho vykonania, ktorý sa automaticky ukončí po opustení terminálu. Predpokladajme, že spúšťate programy cez SSH a ak sa spojenie preruší, relácia sa ukončí, všetky spustené procesy sa zastavia a môžete čeliť obrovskej náhodnej kríze. V takýchto prípadoch môže byť spustenie príkazov na pozadí pre používateľa veľmi užitočné, a to je miesto príkaz nohup prichádza do obrazu. nohup (žiadne zavesenie) je príkaz v systémoch Linux, ktorý spúšťa proces aj po odhlásení z shellu/terminálu.

Príkaz Nohup

Zvyčajne sa každý proces v systémoch Linux odosiela a SIGHUP (zavesenie signálu) ktorý je zodpovedný za ukončenie procesu po zatvorení/opustení terminálu. Príkaz Nohup zabraňuje procesu prijať tento signál pri zatvorení alebo opustení terminálu/plášťa. Po spustení alebo vykonaní úlohy pomocou príkazu nohup, stdin nebudú pre používateľa dostupné a nohup.out súbor sa používa ako predvolený súbor pre stdout a stderr . Ak je výstup príkazu nohup presmerovaný do iného súboru, nohup.out súbor sa nevygeneruje.



Syntax príkazu Nohup

Syntax na použitie príkazu Nohup je jednoduchá:

pivot sql servera
nohup command [options] &>
  • `command`> : Určuje príkaz alebo skript, ktorý chcete spustiť.
  • `[options]`> : Voliteľné argumenty alebo príznaky, ktoré upravujú správanie príkazu.
  • `&`> : Umiestnenie znaku ampersand (&) na koniec príkazu dáva príkazu shell spustiť príkaz na pozadí.

Práca s príkazom nohup

Kontrola verzie Nohup

Kontrola verzie Nohup je jednoduchý proces. Verziu Nohup nainštalovanú vo vašom systéme môžete zvyčajne skontrolovať pomocou súboru ` --version`> vlajka. Stačí vykonať nasledujúci príkaz:



nohup --version>

Výkon:

Spustenie procesu pomocou Nohup

Ak chcete spustiť proces pomocou Nohup, jednoducho pridajte požadovaný príkaz snohup>. Napríklad, ak chcete spustiť bash skript s názvomgeekfile.py>pomocou Nohup by ste použili nasledujúci príkaz:



nohup bash geekfile.sh>

Výkon:

aktuálny dátum v jazyku java

Na presmerovanie výstupu na output.txt súbor:

nohup bash geekfile.sh>output.txt>

Výkon:

pothineni baran

Spustenie procesu na pozadí pomocou Nohup

Ak chcete spustiť príkaz na pozadí, „ &' symbol sa pridá na koniec príkazu. Po vykonaní sa po spustení príkazu na pozadí nevráti do príkazového riadka shellu. Môže sa vrátiť do popredia pomocou fg príkaz.

nohup bash geekfile.sh & fg>

Výkon:

Poznámka: Číslo v hranatých zátvorkách predstavuje ID práce a číslo vedľa je ID procesu .

Spustenie viacerých príkazov na pozadí

Príkaz nohup možno použiť na spustenie viacerých príkazov na pozadí.

nohup bash -c 'commands'>

Príklad:

nohup bash -c 'cal && ls'>

Výkon:

Tu bude výstup štandardne uložený v nohup.out . Ak ho chcete presmerovať, zadajte:

nohup bash -c 'commands'>názov_súboru.txt>

Príklad:

nohup bash -c 'cal && ls'>output.txt>

Výkon:

program v jave

Príkaz nohup v systéme Linux – najčastejšie otázky

Čo je nohup> príkaz v Linuxe a čo robí?

The nohup> príkaz znamená zákaz zavesenia. Umožňuje vám spustiť príkaz alebo skript shellu takým spôsobom, že bude pokračovať aj po odhlásení alebo zatvorení terminálu. Tým sa zabráni ukončeniu príkazu po ukončení relácie terminálu.

čítanie zo súboru csv v jazyku Java

Ako môžem použiť nohup> príkaz?

Použit nohup> , jednoducho ho pridajte pred príkaz, ktorý chcete spustiť. Napríklad:

nohup command_to_run &>

The &> symbol na konci presunie príkaz do pozadia, čo vám umožní pokračovať v používaní terminálu počas spustenia príkazu.

Kde nohup> poslať výstup príkazu?

Predvolene, nohup> presmeruje štandardný výstup (stdout) aj štandardnú chybu (stderr) do súboru s názvom nohup.out> v aktuálnom adresári. V prípade potreby môžete zadať iný výstupný súbor.

Môžem použiť nohup> s interaktívnymi príkazmi alebo programami?

Zatiaľ čo nohup> sa zvyčajne používa s neinteraktívnymi príkazmi alebo skriptami, môžete ho použiť s interaktívnymi príkazmi. Správanie však môže byť nepredvídateľné, najmä ak príkaz očakáva vstup od používateľa. Vo všeobecnosti sa odporúča vyhnúť sa používaniu nohup> s interaktívnymi programami.

Ako môžem skontrolovať stav spusteného príkazu s nohup> ?

Od r nohup> spustí príkaz na pozadí, môžete použiť štandardné nástroje Linuxu, ako napr ps> alebo top> na kontrolu stavu procesu. Napríklad:

ps aux | grep>

Zobrazí sa vám informácie o procese vrátane jeho PID (ID procesu), ktoré potom môžete použiť na správu alebo monitorovanie príkazu.

Záver

V Linuxe, keď spustíte príkaz, zvyčajne sa zastaví, keď zatvoríte terminál. Ale s nohup> , môžete ho nechať spustený aj po zatvorení terminálu. Je to veľmi užitočné, najmä ak spúšťate príkazy na diaľku a nechcete, aby sa zastavili, ak vaše pripojenie prepadne.nohup>funguje tak, že chráni váš príkaz pred signálmi, ktoré by ho normálne zastavili. Stačí pridaťnohup>pred vaším príkazom a pokračuje. Výstup príkazu môžete odoslať aj do súboru. Nezabudnite, že je to najlepšie pre neinteraktívne úlohy a stav príkazu môžete skontrolovať pomocou nástrojov, ako je naprps>. takže,nohup>je ako záchranná sieť pre vaše príkazy, ktorá zaisťuje, že sa budú motať, aj keď sa nepozeráte.