Kiekviena Linux komanda jos vykdymo metu pradeda procesą, kuris automatiškai nutraukiamas išėjus iš terminalo. Tarkime, jūs vykdote programas per SSH ir nutrūkus ryšiui, seansas bus nutrauktas, visi vykdomi procesai sustos ir galite susidurti su didžiule atsitiktine krize. Tokiais atvejais komandų vykdymas fone gali būti labai naudingas vartotojui ir štai kur komanda nohup patenka į paveikslą. nohup (be ragelio) yra komanda Linux sistemose, kuri paleidžia procesą net atsijungus nuo apvalkalo / terminalo.
„Nohup“ komanda
Paprastai kiekvienas procesas Linux sistemose siunčiamas a SIGHUP (signalo pakabinimas) kuri yra atsakinga už proceso nutraukimą uždarius/išėjus iš terminalo. „Nohup“ komanda neleidžia procesui gauti šio signalo uždarius arba išeinant iš terminalo / apvalkalo. Kai darbas pradedamas arba vykdomas naudojant komandą nohup, stdin nebus pasiekiamas vartotojui ir nohup.out failas naudojamas kaip numatytasis failas stdout ir stderr . Jei komandos nohup išvestis nukreipiama į kitą failą, nohup.out failas nesukuriamas.
Nohup komandos sintaksė
„Nohup“ komandos naudojimo sintaksė yra paprasta:
sąlyginis operatorius java
nohup command [options] &>
-
`command`>: nurodo komandą arba scenarijų, kurį norite vykdyti. -
`[options]`>: pasirenkami argumentai arba vėliavėlės, keičiančios komandos elgesį. -
`&`>: Įdėjus ampersandą (&) komandos pabaigoje, apvalkalas nurodomas paleisti komandą fone.
Darbas su nohup komanda
- Tikrinama Nohup versija
- Proceso pradžia naudojant Nohup
- Proceso pradžia fone naudojant Nohup
- Norėdami paleisti kelias komandas fone
Tikrinama Nohup versija
„Nohup“ versijos tikrinimas yra paprastas procesas. Paprastai galite patikrinti savo sistemoje įdiegtą Nohup versiją naudodami ` --version`> vėliava. Tiesiog vykdykite šią komandą:
nohup --version>
Išvestis:
Proceso pradžia naudojant Nohup
Norėdami pradėti procesą naudodami Nohup, tiesiog pridėkite norimą komandą sunohup>. Pavyzdžiui, jei norite vykdyti bash scenarijų pavadinimugeekfile.py>naudodami Nohup, naudotumėte šią komandą:
nohup bash geekfile.sh>
Išvestis:
gimp išsaugoti kaip jpeg
Norėdami nukreipti išvestį į output.txt failas:
nohup bash geekfile.sh>output.txt>
Išvestis:
Proceso pradžia fone naudojant Nohup
Norėdami paleisti komandą fone, „ &' simbolis pridedamas komandos pabaigoje. Paleidus komandą fone, ji negrįžta į apvalkalo komandų eilutę. Jis gali būti grąžintas į pirmą planą su fg komandą.
nohup bash geekfile.sh & fg>
Išvestis:
gražiausia šypsena pasaulyje
Pastaba: Skaičius laužtiniuose skliaustuose reiškia darbo id o šalia jo esantis skaičius yra proceso id .
Norėdami paleisti kelias komandas fone
komanda nohup gali būti naudojama kelioms komandoms paleisti fone.
nohup bash -c 'commands'>
Pavyzdys:
nohup bash -c 'cal && ls'>
Išvestis:
Čia išvestis pagal numatytuosius nustatymus bus saugoma nohup.out . Norėdami jį peradresuoti, įveskite:
nohup bash -c 'commands'>failo pavadinimas.txt>
Pavyzdys:
nohup bash -c 'cal && ls'>output.txt>
Išvestis:
pritaikyta išimtis Java
nohup komanda Linux sistemoje – DUK
Kas yra nohup> komanda Linux sistemoje ir ką ji daro?
The
nohup>komanda reiškia ne pakabinti. Tai leidžia paleisti komandą arba apvalkalo scenarijų taip, kad jis toliau veiktų net atsijungus arba uždarius terminalą. Tai neleidžia komandai nutraukti, kai baigiasi terminalo sesija.prasideda java
Kaip aš naudoju nohup> komandą?
Naudoti
nohup>, tiesiog pridėkite jį prie komandos, kurią norite paleisti. Pavyzdžiui:nohup command_to_run &>The
&>pabaigoje esantis simbolis perkelia komandą į foną, todėl galite toliau naudoti terminalą, kol komanda vykdoma.
Kur daro nohup> siųsti komandos išvestį?
Pagal numatytuosius nustatymus
nohup>peradresuoja ir standartinę išvestį (stdout), ir standartinę klaidą (stderr) į failą pavadinimunohup.out>dabartiniame kataloge. Jei norite, galite nurodyti kitą išvesties failą.
Ar galiu naudoti nohup> su interaktyviomis komandomis ar programomis?
Nors
nohup>paprastai naudojamas su neinteraktyviomis komandomis ar scenarijais, galite naudoti su interaktyviomis komandomis. Tačiau elgesys gali būti nenuspėjamas, ypač jei komanda tikisi įvesties iš vartotojo. Paprastai rekomenduojama vengti naudotinohup>su interaktyviomis programomis.
Kaip galiu patikrinti komandos, veikiančios su nohup> ?
Nuo
nohup>paleidžia komandą fone, galite naudoti standartinius Linux įrankius, pvzps>arbatop>norėdami patikrinti proceso būseną. Pavyzdžiui:ps aux | grep>Tai parodys informaciją apie procesą, įskaitant jo PID (proceso ID), kurią galėsite naudoti komandoms valdyti arba stebėti.
Išvada
Linux sistemoje, kai paleidžiate komandą, ji paprastai sustoja, kai uždarote terminalą. Bet su nohup> , galite jį toliau veikti net uždarę terminalą. Tai labai patogu, ypač jei komandas vykdote nuotoliniu būdu ir nenorite, kad jos nutrūktų, jei ryšys nutrūktų.nohup>veikia apsaugodama jūsų komandą nuo signalų, kurie paprastai ją sustabdytų. Jūs tiesiog pridedatenohup>prieš tavo įsakymą, ir tai tęsiasi. Taip pat galite nusiųsti komandos išvestį į failą. Tiesiog atminkite, kad tai geriausiai tinka neinteraktyvioms užduotims, o komandos būseną galite patikrinti naudodami tokius įrankius kaipps>. Taigi,nohup>yra tarsi apsauginis tinklas jūsų komandoms, užtikrinantis, kad jos nenutrūktų net tada, kai nematote.