Kaip paleisti „Bash“ komandas „Linux“ fone


Nėra nieko labiau erzina, kaip paleisti komandą savo terminale ir paleisti ją minutes, kartais valandas, ir nebegalėti naudoti terminalo. Žinoma, galite naudoti skirtukus, bet tai sudėtingas sprendimas ir ne visada optimalus, nes galbūt norėsite matyti naujinius, kai dirbate. Čia parodysime kelis skirtingus būdus, kaip paleisti „bash“ komandas „Linux“ fone.

Taip pat skaitykite: Kaip naudoti „lsof“ komandą „Linux“ atidarytų failų sąrašui pateikti

Užbaikite komandą su &

Jei norite perkelti komandą į foną, pabaigoje naudodami & yra paprastas būdas tai padaryti. Tokiu būdu galite duoti komandą fone ir toliau naudoti terminalą, kai jis veikia. Vis dėlto jis ateina su laimikiu. Naudojant & komanda nuo jūsų neatjungiama; tai tiesiog nustumia jį į antrą planą. Tai reiškia, kad kol bandote naudoti terminalą, viskas, ką komanda nori nusiųsti į STDOUT arba STDERR, vis tiek bus spausdinama, o tai gali blaškyti dėmesį.

COMMAND &

Kai terminalo sesija uždaroma, komanda baigiasi. Taip pat galite sunaikinti komandą išleisdami komandą jobs, surasdami vykdomos komandos numerį ir užmušdami komandą kill. Ši sintaksė yra tokia:

kill %1

Naudoti & yra naudinga, jei reikia ką nors šiek tiek atstumti, bet nesitikėkite, kad tai tęsis amžinai.

Taip pat skaitykite: kaip naudoti komandą dd sistemoje „Linux“.

& Po komandos, tada jos atsisakykite

Vykdant komandą tik naudojant &, ji nustumiama į galą ir veikia tol, kol atidarytas terminalo langas. Tačiau jei norite, kad ši komanda veiktų nuolat, net ir pasibaigus terminalo seansui, galite naudoti komandą disown.

Norėdami naudoti šį metodą, pradėkite pridėdami &.

COMMAND &

Kaip minėta aukščiau, naudojant & ši komanda nustumiama į foną, bet neatskiriama nuo vartotojo. Galite tai patikrinti terminale įvesdami jobs. Tai parodys komandą, veikiančią fone, kaip matėme anksčiau.

Tiesiog į apvalkalą įveskite disown ir jis tai padarys. (Ir tai galite dar kartą patikrinti naudodami komandą darbai.)

Dabar galite uždaryti terminalą ir tęsti savo dieną. Jis vis tiek bus nukreiptas į STDOUT arba STDERR, bet išėję ir iš naujo atidarę terminalą ten nieko nematysite. Galite rasti komandą dar kartą naudodami komandas top arba ps ir užmušti ją naudodami komandą kill.

Taip pat skaitykite: Kaip naudoti Rm komandą sistemoje „Linux“.

& Po komandos su /dev/null

Po komandos pridėjus & komanda bus nukreipta į foną, tačiau dėl to fono komanda ir toliau spausdins pranešimus į terminalą, kai ją naudojate. Jei norite to išvengti, apsvarstykite galimybę nukreipti komandą į /dev/null.

COMMAND &>/dev/null &

Tai netrukdo komandai uždaryti, kai terminalas užsidaro. Tačiau, kaip minėta aukščiau, galima naudoti disown, kad atsisakytumėte vykdomos komandos nuo vartotojo. Taip pat galite jį nužudyti naudodami bet kurį iš aukščiau paminėtų metodų, jei nenorite, kad jis daugiau veiktų.

Taip pat skaitykite: Galutinis „Apt“ ir „Apt-Get“ komandų vadovas

Nohup, su & ir /dev/null

Skirtingai nuo ankstesnių komandų, naudojant nohup galite paleisti komandą fone ir toliau ją vykdyti. Kaip? nohup apeina HUP signalą (signalo pakabinimas), todėl galima vykdyti komandas fone, net kai terminalas išjungtas. Sujunkite šią komandą su peradresavimu į „/dev/null“ (kad nohup nesukurtų failo nohup.out), ir viskas pereis į foną su viena komanda.

nohup COMMAND &>/dev/null &

Taip pat skaitykite: Kaip generuoti SSL sertifikatus sistemoje „Linux“ naudojant „OpenSSL“

Daugumoje „Linux“ terminalų programų šiandien yra įdiegtos funkcijos, leidžiančios be pastangų veikti fone. Be to, šiuolaikinės init sistemos (pvz., systemd) gali leisti vartotojams paleisti tokias programas kaip paslaugos įkrovos metu arba bet kada.

Vis dėlto kai kurioms „Linux“ programoms trūksta galimybės veikti kaip demonas arba integruotis su šiuolaikinėmis init sistemomis. Tai tikrai nepatogus, bet suprantamas, nes ne visi kūrėjai turi įgūdžių ar laiko pridėti naujų funkcijų.

Laimei, komandos, pvz., nohup arba disown, vis dar yra realybė ir gali panaikinti spragą perkelti tokias programas į foną. Jie nėra tobuli ar įmantrūs, tačiau prireikus atlieka darbą.

Jei jums patiko šis „Linux“ straipsnis, būtinai peržiūrėkite kitą mūsų „Linux“ turinį, pvz., kaip prijungti „Google“ paskyrą prie „GNOME Shell“, geriausių „Windows“ naudotojų skirtų „Linux“ paskirstymų ir LS komandų, kurias reikia žinoti.

Taip pat skaitykite: Kaip naudoti cURL komandų eilutės duomenims perduoti ir daugiau