Android

Linux nohup naredba

nohup - Run Commands in the Background - Linux CLI

nohup - Run Commands in the Background - Linux CLI

Sadržaj:

Anonim

Naredba nohup izvršava drugi program naveden kao njegov argument i zanemaruje sve SIGHUP (hangup) signale. SIGHUP je signal koji se šalje procesu kada je njegov upravljački terminal zatvoren.

Kada pokrenete program preko SSH-a, ako veza padne ili se odjavite, sesija se prekida i svi procesi izvršeni na terminalu zaustavit će se. Ovdje nohup dolazi naredba nohup . Zanemaruje sve signale zatvaranja i proces će se i dalje odvijati.

Kako se koristi naredba nohup

Sintaksa naredbe nohup je sljedeća:

nohup COMMAND

Naredba ne prihvaća nikakve druge opcije osim standardne --help i --version .

Pogledajmo sljedeći primjer:

nohup mycommand

nohup: ignoring input and appending output to 'nohup.out'

nohup izvršava naredbu mycommand u prvom planu i preusmjerava naredbeni izlaz u datoteku nohup.out . Ova se datoteka stvara u trenutnom radnom imeniku. Ako korisnik koji izvršava naredbu nema dozvole pisanja u radni direktorij, datoteka se stvara u korisničkom matičnom imeniku.

Ako odjavite ili zatvorite terminal, postupak se ne prekida.

Izvođenje naredbe u pozadini

Upotreba nohup u prvom planu nije vrlo korisna jer nećete moći komunicirati s ljuskom dok naredba ne dovrši.

Za pokretanje naredbe u pozadini dodajte & simbol na kraju naredbe:

nohup mycommand &

Izlaz uključuje ID posla ljuske (okružen zagradama) i ID procesa:

25177

Možete koristiti ID posla za stavljanje naredbe u prvi plan pomoću naredbe fg .

Ako iz nekog razloga želite prekinuti postupak, upotrijebite naredbu kill a slijedi ID procesa:

kill -9 25132

Preusmjeravanje izlaza u datoteku

Prema zadanim postavkama, nohup preusmjerava naredbeni izlaz u datoteku nohup.out . Ako želite preusmjeriti izlaz na drugu datoteku, upotrijebite standardno preusmjeravanje ljuske.

Na primjer, za preusmjeravanje standardnog izlaza i standardne pogreške na mycommand.out upotrijebili biste:

nohup mycommand > mycommand.out 2>&1 &

Da biste preusmjerili standardni izlaz i standardnu ​​pogrešku na različite datoteke:

nohup mycommand > mycommand.out 2> mycommand.err &

Alternative

Postoji nekoliko alternativnih programa pomoću kojih možete izbjeći zapovijed koja se prekida kad zatvorite terminal ili prekinete vezu.

Zaslon

Screen ili GNU Screen je terminalni multiplekser program koji vam omogućuje pokretanje zaslona zaslona i otvaranje bilo kojeg broja prozora (virtualnih terminala) unutar te sesije. Procesi koji se izvode na zaslonu nastavit će se prikazivati ​​ako njihov prozor nije vidljiv, čak i ako se prekinete.

Tmux

Tmux je moderna alternativa zaslonu GNU-a. Pomoću Tmuxa možete stvoriti sesiju i otvoriti više prozora unutar te sesije. Tmux sesije su uporne, što znači da će se programi koji se izvode u Tmuxu i dalje pokrenuti čak i ako zatvorite terminal.

odricati se

disown je ugrađena školjka koja uklanja posao ljuske s kontrole posla ljuske. Za razliku od nohup , možete pokrenuti i pokretanje procesa.

Zaključak

nohup vam omogućuje da spriječite da se naredbe prekidaju pri odjavi ili izlasku iz terminala.

nohup terminal