Linux-daky prosesler barada bilmeli zatlaryňyz [Giňişleýin gollanma]


Bu makalada, proseslere esasy düşünişip geçeris we käbir buýruklary ulanyp Linux-da amallary nädip dolandyrmalydygyna gysgaça serederis.

Amal ýerine ýetirilýän programma degişlidir; bu programmanyň işleýän mysaly. Programma görkezmesinden, faýllardan okalýan maglumatlardan, beýleki programmalardan ýa-da ulgam ulanyjysynyň girişinden ybarat.

Linux-da esasan iki görnüşli proses bar:

  • Öňdäki prosesler (interaktiw prosesler hem diýilýär) - bular başlangyç sessiýa arkaly başlaýar we gözegçilikde saklanýar. Başgaça aýdylanda, şeýle amallary başlamak üçin ulgama birikdirilen ulanyjy bolmaly; ulgam funksiýalarynyň/hyzmatlarynyň bir bölegi hökmünde awtomatiki başlamadylar.
  • Fon prosesleri (interaktiw däl/awtomatiki prosesler hem diýilýär) - terminala birikdirilmedik prosesler; ulanyjynyň girişine garaşmaýarlar.

Bular ulgam işe başlanda başlaýan we hyzmat hökmünde hemişelik işlemegi dowam etdirýän fon prosesleriniň aýratyn görnüşleri; ölmeýärler. Ulgam meseleleri hökmünde (hyzmatlar hökmünde işledilýär) öz-özünden başlaýar. Şeýle-de bolsa, init prosesi arkaly ulanyjy tarapyndan dolandyrylyp bilner.

Linux-da prosesleriň döredilmegi

Adatça bar bolan proses özüni takyk göçürip alanda täze bir proses döredilýär. Çaga prosesi ene-atasy ýaly gurşawda bolar, ýöne diňe amal belgisi başga.

Linux-da täze prosesi döretmek üçin ulanylýan iki adaty usul bar:

  • Ulgam() funksiýasyny ulanmak - bu usul birneme ýönekeý, ýöne netijesiz we belli bir derejede howpsuzlyk töwekgelçiligi bar.
  • Çeňňek() we exec() funksiýasyny ulanmak - bu usul birneme ösen, ýöne howpsuzlyk bilen bilelikde has çeýeligi, tizligi hödürleýär.

Linux amallary nädip kesgitleýär?

Linux köp ulanyjy ulgamy bolany üçin, dürli ulanyjylar ulgamda dürli programmalary işledip bilýärler, programmanyň her işleýän mysaly ýadro tarapyndan özboluşly kesgitlenmeli.

Programma, amal prosesi ID (PID), şeýle hem ene-atanyň prosesi ID (PPID) bilen kesgitlenýär, şonuň üçin amallar mundan beýläk bölünip bilner:

  • Ene-atalar prosesleri - bular iş döwründe beýleki amallary döredýän prosesler.
  • Çaga amallary - bu amallar iş wagty beýleki amallar tarapyndan döredilýär.

Init prosesi ulgamdaky ähli prosesleriň enesi (ene-atasy), Linux ulgamy açylanda ýerine ýetirilýän ilkinji programma; ulgamdaky beýleki amallary dolandyrýar. Ernadrosyň özi başlaýar, şonuň üçin ene-atanyň işi ýok.

Init prosesi elmydama 1. ID belgisine eýe bolup, ähli ýetim amallar üçin ogullyga alýan ene hökmünde işleýär.

Prosessiň şahsyýetini tapmak üçin pidof buýrugyny ulanyp bilersiňiz:

# pidof systemd
# pidof top
# pidof httpd

Häzirki gabygyň prosess ID-sini we ene-atanyň ID-ni tapmak üçin işlediň:

$ echo $$
$ echo $PPID

Buýruk ýa-da programma işledeniňizden soň (mysal üçin cloudcmd - CloudCommander), ulgamda bir prosese başlar. Öňdäki (interaktiw) prosesi aşakdaky ýaly başlap bilersiňiz, ol terminala birikdiriler we ulanyjy giriş iberip biler:

# cloudcmd

Fonda (interaktiw däl) başlamak üçin & nyşanyny ulanyň, bu ýerde ulanyjy birinji hatara geçýänçä girişini okamaz.

# cloudcmd &
# jobs

Şeýle hem, [Ctrl + Z] ulanyp togtadyp, fonda bir prosesi iberip bilersiňiz, bu SIGSTOP signalyny prosese iberer we şeýlelik bilen işini bes eder; boş bolýar:

# tar -cf backup.tar /backups/*  #press Ctrl+Z
# jobs

Aboveokardaky togtadylan buýrugy fonda dowam etdirmek üçin bg buýrugyny ulanyň:

# bg

Yzky fonda işlemek üçin fg buýrugyny iş ID bilen bilelikde ulanyň:

# jobs
# fg %1

Şeýle hem halap bilersiňiz: Linux buýrugyny fonda nädip başlamaly we Terminalda amallary bölüň

Executionerine ýetirilende, daşky gurşawyna/ýagdaýyna baglylykda bir proses başga bir ştata üýtgeýär. Linux-da bir prosesiň mümkin bolan aşakdaky ýagdaýlary bar:

  • Işlemek - bu ýerde işleýär (ulgamdaky häzirki proses) ýa-da işlemäge taýyn (CPU-laryň birine berilmegine garaşýar).
  • Garaşmak - bu ýagdaýda bir hadysanyň bolmagyna ýa-da ulgam çeşmesine garaşýar. Mundan başga-da, ýadro garaşmagyň iki görnüşini tapawutlandyrýar; bökdençsiz garaşmak prosesleri - signallar bilen kesilip bilner we üznüksiz garaşmak prosesleri - göni enjam şertlerine garaşýarlar we haýsydyr bir hadysa/signal bilen kesilip bilinmez.
  • Duruldy - bu ýagdaýda, adatça signal almak bilen bir proses togtadyldy. Mysal üçin, çözülýän proses.
  • Zombie - bärde bir proses öldi, ol saklandy, ýöne henizem iş tablisasynda ýazgy bar.

Ulgamda işleýän amallary görmek/sanawlamak üçin birnäçe Linux gurallary bar, iki adaty we belli iki iň ýokary buýruk:

Aşakda görkezilişi ýaly ulgamdaky işjeň prosesleriň saýlanylyşy barada maglumatlary görkezýär:

# ps 
# ps -e | head 

Aşakdaky skrinshotda görkezilişi ýaly işleýän ulgamyň dinamiki real wagt görnüşi:

# top 

Has köp ulanylyş mysallary üçin muny okaň: Linux-da 12 TOP buýruk mysallary

seredişler ösen aýratynlyklary bolan has täze ulgam gözegçilik guralydyr:

# glances

Giňişleýin ulanyş gollanmasy üçin okaň: Glances - Linux üçin ösen hakyky wagt ulgamy gözegçilik guraly

Işjeň amallary sanamak üçin ulanyp boljak başga-da birnäçe peýdaly Linux ulgamy gözegçilik gurallary bar, olar hakda has giňişleýin maglumat üçin aşakdaky baglanyşygy açyň:

  1. Linux öndürijiligine gözegçilik etmek üçin 20 buýruk setiri gurallary
  2. 13 Has peýdaly Linux gözegçilik gurallary

Linux-da amallara nädip gözegçilik etmeli

Linux-da öldürmek, pkill, pgrep we killall ýaly proseslere gözegçilik etmek üçin käbir buýruklar bar, aşakda olary ulanmagyň birnäçe esasy mysallary bar:

$ pgrep -u tecmint top
$ kill 2308
$ pgrep -u tecmint top
$ pgrep -u tecmint glances
$ pkill glances
$ pgrep -u tecmint glances

Bu buýruklary çuňňur ulanmagy, Linux-daky işjeň amallary öldürmek/bes etmek üçin aşakdaky baglanyşyklary açyň:

  1. Linux prosessini ýatyrmak üçin öldürmek, Pkill we Killall buýruklary üçin gollanma
  2. Linux-da işleýiş amallaryny nädip tapmaly we öldürmeli

Ulgamyňyz doňanda, Linux-da jogap bermeýän programmalary öldürmek üçin ulanyp bilersiňiz.

Linux-da proseslere gözegçilik etmegiň esasy usuly, olara signal ibermekdir. Signallaryň hemmesini görmek üçin bir prosese iberip boljak birnäçe signal bar:

$ kill -l

Bir prosese signal ibermek üçin, ýokarda belläp geçen öldürmek, pkill ýa-da pgrep buýruklaryny ulanyň. Programsöne programmalar diňe şol signallary tanamak üçin programmirlenen bolsa signallara jogap berip bilerler.

Signallaryň köpüsi ulgam tarapyndan içerki ulanmak ýa-da kod ýazanda programmistler üçin. Aşakda ulgam ulanyjysy üçin peýdaly signallar bar:

  • SIGHUP 1 - dolandyryş terminaly ýapylanda bir prosese iberilýär.
  • SIGINT 2 - ulanyjy [Ctrl + C] basyp, prosesi kesende, gözegçilik terminaly tarapyndan bir prosese iberilýär.
  • SIGQUIT 3 - ulanyjy çykmak signalyny [Ctrl + D] iberse, prosese iberilýär.
  • SIGKILL 9 - bu signal bir prosesi derrew bes edýär (öldürýär) we amal hiç hili arassalama amallaryny ýerine ýetirmez.
  • 15-nji belgili - bu programmanyň ýatyryş signaly (öldürmek muny adaty ýagdaýda iberer).
  • SIGTSTP 20 - gözegçilik terminaly tarapyndan işini bes etmegini haýyş etmek üçin iberilýär (terminal duralgasy); [Ctrl + Z] basýan ulanyjy tarapyndan başlandy.

Aşakda Firefox programmasyny doňdurylandan soň öldürmek üçin öldürmek buýruklary mysallary bar:

$ pidof firefox
$ kill 9 2687
OR
$ kill -KILL 2687
OR
$ kill -SIGKILL 2687  

Adyny ulanyp bir programmany öldürmek üçin pkill ýa-da killall ulanyň:

$ pkill firefox
$ killall firefox 

Linux ulgamynda ähli işjeň prosesleriň ileri tutulýan we belli bir gowy gymmaty bar. Has ileri tutulýan amallar, adatça pes ähmiýetli amallardan has köp CPU wagtyny alar.

Şeýle-de bolsa, kök aýratynlyklary bolan ulgam ulanyjysy owadan we üýtgetmek buýruklary bilen muňa täsir edip biler.

Commandokarky buýrugyň çykyşyndan NI prosese ajaýyp baha görkezýär:

$ top  

Bir proses üçin ajaýyp baha bellemek üçin ajaýyp buýrugy ulanyň. Adaty ulanyjylaryň özlerine degişli amallara noldan 20-e çenli gowy baha berip biljekdigini ýadyňyzdan çykarmaň.
Diňe kök ulanyjy negatiw gowy bahalary ulanyp biler.

Amalyň ileri tutulmagyny üýtgetmek üçin renice buýrugyny aşakdaky ýaly ulanyň:

$ renice +8  2687
$ renice +8  2103

Linux amallaryny nädip dolandyrmaly we dolandyrmalydygy barada käbir peýdaly makalalarymyza göz aýlaň.

  1. Linux prosess dolandyryşy: Boot, ýapmak we arasyndaky ähli zat
  2. Topar rejesinde “ýokarky” bilen ýat ulanylyşy boýunça iň gowy 15 prosesi tapyň
  3. Linux-da iň ýokary ýat we CPU ulanylyşy boýunça iň ýokary işleýiş amallaryny tapyň
  4. Linux-da PID belgisini ulanyp, prosesiň adyny nädip tapmaly

Bularyň hemmesi häzirlikçe! Soraglaryňyz ýa-da goşmaça pikirleriňiz barmy, aşakdaky seslenme formasy arkaly biziň bilen paýlaşyň.