Protsessi saatmine Linuxi taustal

Send Process Background Linux

Graafiliste töölauakeskkondadega töötades muretseme taustprotsesside pärast harva. Kui meil on esiplaanil protsess, saame kiiresti luua teise terminaliakna ja jätkata oma tööd.

Kui aga olete töötlemata terminali kestas, näiteks SSH, tunnete sageli muret protsesside pärast, mis kestat hõivavad ja blokeerivad, kuni need on lõpetatud, eriti pikaajaliste tööde puhul. Siin tuleb mängu tausta- ja esiplaaniprotsesside kontseptsioon.



See õpetus käsitleb tausta- ja esiplaaniprotsesse, sealhulgas nende loomist ja haldamist Linuxis.



Mis on protsess?

Lubage mul alustada algtasemelt: mis on protsess?



Linuxis on protsess programmi näide. Tavaliselt tähendab see, et mis tahes käsk või täidetav kest on protsess.

Peamiselt on kahte tüüpi protsesse:

  • Esiplaaniprotsessid
  • Taustaprotsessid

Esiplaaniprotsessid on peamiselt tüüpilised rakendused, mille käivitame ja nendega suhtleme. Näitena võiks tuua Gnome'i nautiluse failihalduri. Enamikul juhtudel saame esiplaaniprotsesse käivitada kestast või töölauakeskkonnast.



Teisest küljest töötavad taustprotsessid taustal ega nõua kasutajalt mingit sisendit ega suhtlemist. Näitena võib tuua mis tahes tüüpilise Linuxi deemoni.

Kuidas protsessi taustal käivitada

Oletame, et meil on protsess, mis jooksmise ajal hõivab kestaseansi ja takistab meil käske täita kuni väljumiseni.

Näiteks kui käivitame kestas Firefoxi brauseri, võtab see seansi kuni protsessi lõpetamiseni.

$firefox


Nagu näete, pole Firefoxi töötamise ajal kestaviip saadaval ja me ei saa enam käske täita.

Selle lahendamiseks saame seda teha kahel viisil:

1: Ampersandi (&) kasutamine

Esimene meetod on märk ja märk. See käsib kestal käivitada mis tahes käsu, mis eelneb taustal asuvale & -märgile.

Näide:

firefox&

Sellise stsenaariumi korral käivitub protsess taustal ja kudeb uue kesta viipana, mis võimaldab meil jätkata käskude täitmist.

See annab ka kaks numbrilist identifikaatorit. Esimene nurksulgudes on töö ID, järgmine aga protsessi ID.

2: kasutades käsku CTRL + Z, bg.

Järgmine meetod, mille abil saate protsessi tahaplaanile panna, on kasutada kiirklahvi CTRL + Z. See peatab protsessi kesta blokeerimise. Seejärel saate käsku bg selle taustal lükata.

Näiteks alustage Firefoxi käivitamisega järgmiselt:

$Firefox

Protsessi ajal vajutage klahvikombinatsiooni CTRL + Z. See tagastab teie kesta viiba. Lõpuks sisestage käsk bg, et protsess taustal edasi lükata.

Taustaprotsesside kuvamine

Protsesside vaatamiseks ja haldamiseks taustal kasutage shelli käsku Jobs. See näitab praeguse terminaliseansi taustatöid.

Näiteks:

$töökohti

Tausttööde näide:

Taustal töötava protsessi esiplaanile toomiseks kasutage käsku fg, millele järgneb töö ID.

Näiteks firefoxi töö esiplaanile toomiseks kasutame käsku:

$fg %1

Tagaplaanile seadmiseks vajutage klahvikombinatsiooni CTRL + Z ja seejärel käsku bg.

Kuidas muuta protsess pärast kesta surma püsivaks

Kui töötate taustal protsesse ja teie kestaseanss sureb, lõpetatakse kõik sellega seotud protsessid, mis võivad olla problemaatilised, eriti kui tegemist on SSH -seansiga.

Kuid see pole liiga suur probleem, kui kasutate terminali multiplekserit, näiteks tmux või ekraani, sest sel juhul saate seansi lihtsalt uuesti ühendada.

Kui aga käivitate shelliseansi ilma multiplekserita, saate kasutada käsku nohup.

Käsk nohup on katkestuste suhtes immuunne ja võib ignoreerida protsessile saadetud SIGHUP-signaali.

Seega, kui käivitate käsu nohupiga, jätkub see ka siis, kui shelliseanss kogemata sureb.

Näiteks Firefoxi käivitamiseks nohupiga kasutage käsku:

nohupFirefox&

See käivitab protsessi taustal, kui kest jätkub.

Saate käivitada uue terminaliseansi ja vaadata taustatöid. Näete, et protsess töötab endiselt taustal.

Järeldus

Selles õpetuses arutasime erinevaid viise protsesside käivitamiseks ja Linuxi taustal saatmiseks. Samuti käsitlesime, kuidas taustaprotsess taustale tuua ja kesta lõpetamisel katkestada.