nohup - Run Commands in the Background - Linux CLI
Cuprins:
- Cum se utilizează comanda nohup
- Executarea comenzii în fundal
- Redirecționarea ieșirii către un fișier
- alternative
- Ecran
- Tmux
- renega
- Concluzie
Comanda
nohup
execută un alt program specificat drept argumentul său și ignoră toate semnalele
SIGHUP
(hangup).
SIGHUP
este un semnal care este trimis unui proces atunci când terminalul său de control este închis.
De obicei, atunci când rulați un program peste SSH, dacă conexiunea dvs. scade sau vă deconectați, sesiunea se încheie și toate procesele executate de la terminal se vor opri. Aici comanda
nohup
vine la îndemână. Ignoră toate semnalele de configurare, iar procesul va continua să ruleze.
Cum se utilizează comanda nohup
Sintaxa pentru comanda
nohup
este următoarea:
nohup COMMAND
Comanda nu acceptă alte opțiuni, cu excepția standardului
--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ă comanda
mycommand
în prim plan și redirecționează ieșirea comenzii către fișierul
nohup.out
. 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 acasă al utilizatorului.
Dacă vă deconectați sau închideți terminalul, procesul nu se încheie.
Executarea comenzii în fundal
Folosirea
nohup
în prim-plan nu este foarte utilă, deoarece nu veți putea interacționa cu shell-ul până când nu se finalizează comanda.
Pentru a rula comanda în fundal, adăugați simbolul
&
la sfârșitul comenzii:
nohup mycommand &
Ieșirea include ID-ul de job shell (înconjurat cu paranteze) și ID-ul procesului:
25177
Puteți utiliza ID-ul de lucru pentru a aduce comanda în prim plan folosind comanda
fg
.
Dacă din anumite motive doriți să încheiați procesul, utilizați comanda
kill
urmată de ID-ul procesului:
Redirecționarea ieșirii către un fișier
În mod implicit,
nohup
redirecționează ieșirea comenzii către fișierul
nohup.out
. Dacă doriți să redirecționați ieșirea către un fișier diferit, utilizați redirecția standard a shellului.
De exemplu, pentru a redirecționa ieșirea standard și eroarea standard către
mycommand.out
ați folosi:
nohup mycommand > mycommand.out 2>&1 &
Pentru a redirecționa ieșirea standard și eroarea standard către fișiere diferite:
nohup mycommand > mycommand.out 2> mycommand.err &
alternative
Există mai multe programe alternative pe care le puteți utiliza pentru a evita ca o comandă să fie încheiată atunci când închideți terminalul sau vă deconectați.
Ecran
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 cadrul acelei sesiuni. Procesele care rulează pe ecran vor continua să fie rulate atunci când fereastra lor nu este vizibilă, chiar dacă vă deconectați.
Tmux
Tmux este o alternativă modernă la ecranul GNU. Cu Tmux, puteți crea, de asemenea, o sesiune și puteți deschide mai multe ferestre în acea sesiune. Ședințele Tmux sunt persistente, ceea ce înseamnă că programele care rulează în Tmux vor continua să ruleze chiar dacă închideți terminalul.
renega
disown
este un shell integrat care înlătură un job shell de sub controlul jobului shell-ului. Spre deosebire de
nohup
, puteți utiliza
disown
pe procesele de rulare.
Concluzie
nohup
vă permite să preveniți terminarea comenzilor atunci când vă deconectați sau ieșiți din terminal.
Utilizați linia de comandă cu comandă
Integrați linia de comandă, interfața grafică și o limbă puternică cu pachetul de instrumente Take Command. > Nu-ți place când vânezi un program pe care trebuie să-l faci, să-l găsești, și apoi să descoperi că face mai mult? Am găsit Command Command (100 $, încercare gratuită de 30 de zile) după ce am fost frustrat de linia de comandă necorespunzătoare din Windows. Am descoperit că mi-a dat ce vroiam și multe lucruri pe care nu știam că le-am vrut - dar acum cu siguranță o fac.
Comanda Chmod în linux (fișiere permisiuni)
În Linux, accesul la fișiere este gestionat prin permisiunile, atributele și proprietatea. Acest tutorial acoperă modul de utilizare a comenzii chmod pentru a modifica permisiunile de acces ale fișierelor și directoarelor.
Comanda Chgrp în linux (schimbare grup)
În Linux, fiecare fișier este asociat cu un proprietar și un grup și are permisiuni care determină utilizatorii care pot citi, scrie sau executa fișierul. Comanda chgrpc modifică proprietatea grupului de fișiere date.







