Linux Comanda Nohup

nohup comandă execută un alt program specificat ca argument și ignoră toate SIGHUP (închidere) semnale. SIGHUP este un semnal care este trimis la un proces atunci când terminalul său de control este închis.de obicei, când rulați un program prin SSH, dacă conexiunea dvs. scade sau vă deconectați, sesiunea este terminată și toate procesele executate de la terminal se vor opri. Aici vine la îndemână comanda nohup., Ignoră toate semnalele hangup, iar procesul va continua să ruleze.

Cum să Utilizați Comanda nohup #

sintaxa pentru nohup comanda este după cum urmează:

nohup COMMAND 

comanda nu accepta orice alte opțiuni, cu excepția standard --help și --version.,

Să aruncăm o privire la următorul exemplu:

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

nohup execută mycommand comandă în prim-plan și redirecționează comanda de ieșire la nohup.out fișier. Acest fișier este creat în directorul de lucru curent . Dacă utilizatorul care execută comanda nu are permisiuni de scriere în directorul de lucru, fișierul este creat în directorul de pornire al utilizatorului.

Dacă vă deconectați sau închideți terminalul, procesul nu este terminat.,

rularea comenzii în Background #

folosindnohup în prim-plan nu este foarte utilă deoarece nu veți putea interacționa cu shell-ul până când comanda nu se termină.

Pentru a rula de comandă în fundal , adăugați & simbol de la sfârșitul comanda:

nohup mycommand &

ieșire include shell job ID (înconjurat cu paranteze) și ID-ul de proces:

 25177

puteți folosi de locuri de muncă pentru a aduce la comandă în prim-plan folosind fg comandă.,

Dacă pentru un motiv pe care doriți pentru a termina procesul, folosiți kill comandă, urmat de ID-ul procesului:

kill -9 25132

Redirecționarea Ieșire într-un Fișier #

în mod implicit, nohup redirecționează la comanda de ieșire la nohup.out fișier. Dacă doriți să redirecționați ieșirea într-un fișier diferit, utilizați redirecționarea standard a shell-ului.,

De exemplu, pentru a redirecționa ieșire standard și eroarea standard a mycommand.out v-ar folosi:

nohup mycommand > mycommand.out 2>&1 &

Pentru a redirecționa ieșire standard și eroarea standard pentru fișiere diferite:

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

Alternative #

Există mai multe programe alternative pe care le puteți folosi pentru a evita o comandă să fie încheiată atunci când închideți terminal sau de a lua deconectat.,

Screen #

Screen sau GNU Screen este un program multiplexor terminal care vă permite să începeți o sesiune de ecran și să deschideți orice număr de ferestre (terminale virtuale) în acea sesiune. Procesele care rulează pe ecran vor continua să ruleze atunci când fereastra lor nu este vizibilă, chiar dacă sunteți deconectat.

Tmux #

Tmux este o alternativă modernă la ecranul GNU. Cu Tmux, puteți crea, de asemenea, o sesiune și deschide mai multe ferestre în interiorul acelei sesiuni. Tmux sesiuni sunt persistente, ceea ce înseamnă că programele care rulează în Tmux va continua să ruleze chiar dacă închideți terminal.,

Disown #

disown este un shell builtin care elimină un loc de muncă shell de control de locuri de muncă shell. Spre deosebire de nohup, puteți utiliza disown și pe procesele care rulează.

concluzie #

nohup vă permite să împiedicați terminarea comenzilor atunci când vă deconectați sau ieșiți din terminal.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *