logo

nohup komanda Linux sistemoje su pavyzdžiais

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

„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ą pavadinimu nohup.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 naudoti nohup> su interaktyviomis programomis.

Kaip galiu patikrinti komandos, veikiančios su nohup> ?

Nuo nohup> paleidžia komandą fone, galite naudoti standartinius Linux įrankius, pvz ps> arba top> 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.