Siųskite procesą į „Linux“ foną

Send Process Background Linux



Dirbdami su grafine darbalaukio aplinka, retai jaudinamės dėl foninių procesų. Jei priešakyje vyksta procesas, galime greitai sukurti kitą terminalo langą ir tęsti savo darbą.

Tačiau, jei esate neapdorotame terminalo apvalkale, pvz., SSH, dažnai jausitės susirūpinę dėl procesų, kurie užima ir blokuoja apvalkalą, kol jie bus baigti, ypač atliekant ilgalaikius darbus. Būtent čia atsiranda fono ir įgytų žinių koncepcija.







Šioje pamokoje bus aptariami pagrindiniai ir į priekį įeinantys procesai, įskaitant jų kūrimą ir valdymą „Linux“.



Kas yra Procesas?

Leiskite man pradėti nuo pagrindinio lygio: kas yra procesas?



„Linux“ procesas yra programos pavyzdys. Paprastai tai reiškia, kad bet kokia apvalkalo komanda ar vykdomasis procesas yra procesas.





Iš esmės yra dviejų tipų procesai:

  • Pirmojo plano procesai
  • Fono procesai

Pirmojo plano procesai dažniausiai yra tipiškos programos, kurias paleidžiame ir su jomis sąveikaujame. Pavyzdys būtų „nautilus“ failų tvarkyklė „Gnome“. Daugeliu atvejų mes galime pradėti priekinio plano procesus iš apvalkalo arba darbalaukio aplinkos.



Kita vertus, fono procesai vyksta fone ir nereikalauja vartotojo įvesties ar sąveikos. Pavyzdys būtų bet kuris tipiškas „Linux“ demonas.

Kaip paleisti procesą fone

Tarkime, kad turime procesą, kuris bėgdamas užima apvalkalo seansą ir trukdo vykdyti komandas, kol jis išeina.

Pvz., Jei paleisime „Firefox“ naršyklę apvalkale, ji užims sesiją iki proceso pabaigos.

$firefox


Kaip matote, kol veikia „Firefox“, apvalkalo raginimas nepasiekiamas ir mes negalime vykdyti daugiau komandų.

Norėdami tai išspręsti, galime tai padaryti dviem būdais:

1: „Ampersand“ (&) naudojimas

Pirmasis būdas yra naudoti „&“ ženklą. Tai nurodo apvalkalui paleisti bet kokią komandą, esančią prieš simbolį fone.

Pavyzdys:

firefox&

Esant tokiai situacijai, procesas vykdomas fone ir atsiranda kaip naujas apvalkalo raginimas, leidžiantis toliau vykdyti komandas.

Taip pat pateikiami du skaitmeniniai identifikatoriai. Pirmasis laužtiniuose skliaustuose yra darbo ID, o kitas - proceso ID.

2: Naudojant komandą CTRL + Z, bg.

Kitas metodas, kurį galite naudoti norėdami įkelti procesą į foną, yra spartusis klavišas CTRL + Z. Tai sustabdo procesą nuo blokavimo. Tada galite naudoti komandą „bg“, kad ją nustumtumėte į foną.

Pavyzdžiui, paleiskite „Firefox“ kaip:

$„Firefox“

Kol procesas vyksta, paspauskite CTRL + Z. Tai grąžins jūsų apvalkalo raginimą. Galiausiai įveskite komandą bg, kad procesas būtų fone.

Kaip parodyti fono procesus

Norėdami peržiūrėti ir valdyti procesus fone, naudokite apvalkalo komandą job. Tai parodys dabartinės terminalo sesijos fonines užduotis.

Pavyzdžiui:

$darbo vietų

Fono užduočių pavyzdys:

Jei norite, kad fone vykstantis procesas būtų priešakyje, naudokite komandą fg ir užduoties ID.

Pavyzdžiui, norėdami, kad „Firefox“ užduotis būtų rodoma pirmame plane, mes naudojame komandą:

$fg %1

Norėdami vėl įjungti foną, paspauskite CTRL + Z, po to - komandą bg.

Kaip padaryti, kad procesas būtų patvarus po korpuso mirties

Kai fone vykdote procesus ir jūsų apvalkalo seansas miršta, visi su juo susiję procesai baigiasi, o tai gali būti problemiška, ypač jei tai yra SSH seansas.

Tačiau tai nėra per didelė problema, jei naudojate terminalo multiplekserį, pvz., „Tmux“ ar ekraną, nes tokiu atveju galite tiesiog iš naujo prijungti seansą.

Tačiau jei vykdote apvalkalo seansą be multiplekserio, galite naudoti komandą nohup.

„Nohup“ komanda yra apsaugota nuo pakabinimo ir gali ignoruoti į procesą siunčiamą SIGHUP signalą.

Taigi, jei vykdote komandą su nohup, ji ir toliau vykdoma, net jei apvalkalo seansas atsitiktinai miršta.

Pavyzdžiui, norėdami paleisti „Firefox“ naudodami „nohup“, naudokite komandą:

nee„Firefox“&

Šis procesas bus vykdomas fone, nes išlieka apvalkalas.

Galite paleisti naują terminalo sesiją ir peržiūrėti fonines užduotis. Pamatysite, kad procesas vis dar vyksta fone.

Išvada

Šioje pamokoje aptarėme įvairius būdus, kaip paleisti ir siųsti procesus į „Linux“ foną. Mes taip pat aptarėme, kaip foninį procesą iškelti į foną ir sustabdyti pokalbį nutraukus apvalkalą.