Fiecare comandă din Linux pornește un proces în momentul execuției sale, care se încheie automat la ieșirea din terminal. Să presupunem că executați programe prin SSH și dacă conexiunea se întrerupe, sesiunea va fi încheiată, toate procesele executate se vor opri și vă puteți confrunta cu o criză uriașă accidentală. În astfel de cazuri, rularea comenzilor în fundal poate fi de mare ajutor utilizatorului și aici este locul în care comanda nohup intră în imagine. nohup (Fără închidere) este o comandă în sistemele Linux care rulează procesul chiar și după deconectarea din shell/terminal.
Comanda Nohup
De obicei, fiecare proces din sistemele Linux este trimis a SIGHUP (semnal închidere) care este responsabil pentru terminarea procesului după închiderea/ieșirea din terminal. Comanda Nohup împiedică procesul să primească acest semnal la închiderea sau ieșirea din terminal/shell. Odată ce un job este pornit sau executat folosind comanda nohup, stdin nu va fi disponibil utilizatorului și nohup.out fișierul este folosit ca fișier implicit pentru stdout și stderr . Dacă rezultatul comenzii nohup este redirecționat către alt fișier, nohup.out fișierul nu este generat.
Sintaxa comenzii Nohup
Sintaxa pentru utilizarea comenzii Nohup este simplă:
df.loc
nohup command [options] &>
-
`command`>: Specifică comanda sau scriptul pe care doriți să-l executați. -
`[options]`>: Argumente sau steaguri opționale care modifică comportamentul comenzii. -
`&`>: plasarea unui ampersand (&) la sfârșitul comenzii indică shell-ului să ruleze comanda în fundal.
Lucrul cu nohup Command
- Se verifică versiunea Nohup
- Pornirea unui proces folosind Nohup
- Pornirea unui proces în fundal folosind Nohup
- Pentru a rula mai multe comenzi în fundal
Se verifică versiunea Nohup
Verificarea versiunii Nohup este un proces simplu. De obicei, puteți verifica versiunea de Nohup instalată pe sistemul dvs. utilizând ` --version`> steag. Pur și simplu executați următoarea comandă:
nohup --version>
Ieșire:
Pornirea unui proces folosind Nohup
Pentru a începe un proces folosind Nohup, pur și simplu adăugați comanda dorită cunohup>. De exemplu, dacă doriți să executați un script bash numitgeekfile.py>folosind Nohup, veți folosi următoarea comandă:
nohup bash geekfile.sh>
Ieșire:
Pentru a redirecționa ieșirea către output.txt fişier:
nohup bash geekfile.sh>output.txt>
Ieșire:
string compara cu java
Pornirea unui proces în fundal folosind Nohup
Pentru a rula comanda în fundal, „ &’ simbolul este atașat la sfârșitul comenzii. După executare, nu revine la promptul de comandă shell după rularea comenzii în fundal. Poate fi adus înapoi în prim-plan cu ajutorul fg comanda.
nohup bash geekfile.sh & fg>
Ieșire:
salvează gimp ca jpeg
Notă: Numărul dintre paranteze drepte reprezintă ID job iar numărul de lângă el este ID proces .
Pentru a rula mai multe comenzi în fundal
Comanda nohup poate fi folosită pentru a rula mai multe comenzi în fundal.
nohup bash -c 'commands'>
Exemplu:
nohup bash -c 'cal && ls'>
Ieșire:
Aici, rezultatul va fi stocat implicit în nohup.out . Pentru a-l redirecționa, tastați:
nohup bash -c 'commands'>filename.txt>
Exemplu:
nohup bash -c 'cal && ls'>output.txt>
Ieșire:
scaner în java
Comanda nohup în Linux – Întrebări frecvente
Ce este nohup> comandă în Linux și ce face?
The
nohup>comanda înseamnă nu închide. Vă permite să rulați o comandă sau un script shell în așa fel încât să continue să ruleze chiar și după ce vă deconectați sau închideți terminalul. Acest lucru împiedică terminarea comenzii când se termină sesiunea terminalului.dezavantajele serviciilor bancare online
Cum folosesc nohup> comanda?
A folosi
nohup>, pur și simplu adăugați-l înaintea comenzii pe care doriți să o executați. De exemplu:nohup command_to_run &>The
&>simbolul de la sfârșit pune comanda în fundal, permițându-vă să continuați să utilizați terminalul în timp ce comanda rulează.
Unde nohup> trimite ieșirea comenzii?
În mod implicit,
nohup>redirecționează atât ieșirea standard (stdout) cât și eroarea standard (stderr) către un fișier numitnohup.out>în directorul curent. Dacă doriți, puteți specifica un fișier de ieșire diferit.
Pot folosi nohup> cu comenzi sau programe interactive?
In timp ce
nohup>este de obicei folosit cu comenzi sau scripturi non-interactive, îl puteți folosi cu comenzi interactive. Cu toate acestea, comportamentul poate fi imprevizibil, mai ales dacă comanda așteaptă o intrare de la utilizator. În general, este recomandat să evitați utilizareanohup>cu programe interactive.
Cum pot verifica starea unei comenzi care rulează cu nohup> ?
De cand
nohup>rulează comanda în fundal, puteți utiliza instrumente standard Linux precumps>sautop>pentru a verifica starea procesului. De exemplu:ps aux | grep>Aceasta vă va afișa informații despre proces, inclusiv PID (ID-ul procesului), pe care apoi le puteți utiliza pentru a gestiona sau monitoriza comanda.
Concluzie
În Linux, când rulați o comandă, aceasta se oprește de obicei când închideți terminalul. Dar cu nohup> , îl puteți menține în funcțiune chiar și după ce ați închis terminalul. Acest lucru este foarte util, mai ales dacă executați comenzi de la distanță și nu doriți ca acestea să se oprească dacă se întrerupe conexiunea.nohup>funcționează prin protejarea comenzii de semnale care ar opri-o în mod normal. Doar adăugaținohup>înainte de porunca ta și continuă să meargă. De asemenea, puteți trimite rezultatul comenzii într-un fișier. Nu uitați, este cel mai bine pentru sarcini non-interactive și puteți verifica starea comenzii dvs. folosind instrumente precumps>. Asa de,nohup>este ca o plasă de siguranță pentru comenzile dvs., asigurându-vă că ele continuă să tragă de-a lungul chiar și atunci când nu vizionați.