Ang Kinahanglan Nimong Mahibal-an Bahin sa Mga Proseso sa Linux [Komprehensibo nga Giya]


Niini nga artikulo, maglakaw kami sa usa ka sukaranan nga pagsabut sa mga proseso ug tan-awon sa kadali kung giunsa pagdumala ang mga proseso sa Linux gamit ang pipila nga mga mando.

Ang usa ka proseso nagtumong sa usa ka programa nga gipatuman; kini usa ka nagdagan nga pananglitan sa usa ka programa. Kini gilangkoban sa instruksyon sa programa, datos nga gibasa gikan sa mga file, ubang mga programa o input gikan sa usa ka user sa sistema.

Adunay sukaranan nga duha ka matang sa mga proseso sa Linux:

  • Mga proseso sa unahan (gitawag usab nga interactive nga mga proseso) – kini gisugdan ug gikontrol pinaagi sa usa ka terminal session. Sa laing pagkasulti, kinahanglan adunay usa ka tiggamit nga konektado sa sistema aron masugdan ang ingon nga mga proseso; wala sila awtomatikong nagsugod isip kabahin sa mga function/serbisyo sa system.
  • Mga proseso sa background (gitawag usab nga dili interactive/awtomatikong mga proseso) – mga proseso nga wala konektado sa terminal; wala sila magdahom ug bisan unsa nga user input.

Kini ang mga espesyal nga tipo sa mga proseso sa background nga nagsugod sa pagsugod sa sistema ug nagpadayon sa pagdagan hangtod sa hangtod ingon usa ka serbisyo; dili sila mamatay. Gisugdan sila isip mga buluhaton sa sistema (pagdagan ingon mga serbisyo), sa kalit. Bisan pa, mahimo silang kontrolon sa usa ka tiggamit pinaagi sa proseso sa init.

Paghimo sa usa ka Proseso sa Linux

Ang usa ka bag-ong proseso kasagarang gihimo kung ang usa ka kasamtangan nga proseso naghimo sa usa ka eksaktong kopya sa iyang kaugalingon sa memorya. Ang proseso sa bata adunay parehas nga palibot sa ginikanan niini, apan lahi ra ang numero sa ID sa proseso.

Adunay duha ka naandan nga paagi nga gigamit sa paghimo og bag-ong proseso sa Linux:

  • Paggamit sa System() Function – kini nga pamaagi medyo simple, apan, kini dili episyente ug adunay dakong risgo sa seguridad.
  • Paggamit sa fork() ug exec() Function – kini nga teknik medyo abante apan nagtanyag og mas dako nga pagka-flexible, katulin, uban sa seguridad.

Giunsa Pag-ila sa Linux ang mga Proseso?

Tungod kay ang Linux usa ka multi-user nga sistema, nagpasabut nga lain-laing mga tiggamit mahimong magpadagan sa lain-laing mga programa sa sistema, ang matag running instance sa usa ka programa kinahanglang mailhan nga talagsaon pinaagi sa kernel.

Ug ang usa ka programa giila pinaagi sa proseso nga ID (PID) ingon man kini sa mga proseso sa ginikanan nga ID (PPID), busa ang mga proseso mahimo pa nga ma-categorize sa:

  • Mga proseso sa ginikanan – kini ang mga proseso nga nagmugna ug ubang mga proseso sa panahon sa pagdagan.
  • Mga proseso sa bata – kini nga mga proseso gihimo sa ubang mga proseso sa panahon sa pagdagan.

Ang proseso sa Init mao ang inahan (ginikanan) sa tanan nga mga proseso sa sistema, kini ang una nga programa nga gipatuman kung ang sistema sa Linux nag-boot; kini nagdumala sa tanang ubang mga proseso sa sistema. Gisugdan kini sa kernel mismo, mao nga sa prinsipyo wala kini proseso sa ginikanan.

Ang proseso sa init kanunay adunay ID sa proseso nga 1. Naglihok kini isip usa ka ginikanan nga nagsagop sa tanan nga mga proseso nga nailo.

Mahimo nimong gamiton ang pidof command aron makit-an ang ID sa usa ka proseso:

# pidof systemd
# pidof top
# pidof httpd

Aron makit-an ang ID sa proseso ug ID sa proseso sa ginikanan sa kasamtangan nga kabhang, pagdagan:

$ echo $$
$ echo $PPID

Sa higayon nga modagan ka sa usa ka sugo o programa (pananglitan cloudcmd - CloudCommander), kini magsugod sa usa ka proseso sa sistema. Mahimo ka magsugod sa usa ka foreground (interactive) nga proseso sama sa mosunod, kini konektado sa terminal ug ang usa ka user makapadala sa input niini:

# cloudcmd

Para makasugod ug proseso sa background (non-interactive), gamita ang simbolo nga &, dinhi, dili mabasa sa proseso ang input gikan sa usa ka user hangtod nga mabalhin kini sa foreground.

# cloudcmd &
# jobs

Mahimo usab nimo ipadala ang usa ka proseso sa background pinaagi sa pagsuspinde niini gamit ang [Ctrl + Z], kini magpadala sa SIGSTOP signal sa proseso, sa ingon mohunong sa mga operasyon niini; kini mahimong walay pulos:

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

Aron ipadayon ang pagpadagan sa gisuspinde nga sugo sa ibabaw sa background, gamita ang bg command:

# bg

Aron ipadala ang proseso sa background sa foreground, gamita ang fg command kauban ang job ID sama niini:

# jobs
# fg %1

Mahimo usab nimo gusto: Giunsa Pagsugod ang Linux Command sa Background ug Detach Process sa Terminal

Atol sa pagpatuman, ang usa ka proseso mausab gikan sa usa ka estado ngadto sa lain depende sa iyang palibot/kahimtang. Sa Linux, ang usa ka proseso adunay mosunod nga posible nga mga estado:

  • Pagdagan – dinhi kini nagdagan (kini ang kasamtangan nga proseso sa sistema) o kini andam na nga modagan (kini naghulat nga ma-assign sa usa sa mga CPU).
  • Paghulat – sa niini nga kahimtang, ang usa ka proseso naghulat alang sa usa ka panghitabo nga mahitabo o alang sa usa ka sistema nga kapanguhaan. Dugang pa, ang kernel usab nagpalahi tali sa duha ka matang sa proseso sa paghulat; mabalda nga mga proseso sa paghulat – mahimong mabalda sa mga signal ug dili maputol nga proseso sa paghulat – direkta nga naghulat sa mga kondisyon sa hardware ug dili mabalda sa bisan unsang panghitabo/signal.
  • Gihunong – niini nga kahimtang, usa ka proseso ang gipahunong, kasagaran pinaagi sa pagdawat og signal. Pananglitan, usa ka proseso nga gi-debug.
  • Zombie – dinhi, patay na ang proseso, nahunong na apan aduna pa kini entry sa lamesa sa proseso.

Adunay ubay-ubay nga mga himan sa Linux alang sa pagtan-aw/paglista sa mga proseso nga nagdagan sa sistema, ang duha nga tradisyonal ug ilado mao ang mga nanguna nga mga sugo:

Nagpakita kini og impormasyon mahitungod sa pagpili sa mga aktibong proseso sa sistema sama sa gipakita sa ubos:

# ps 
# ps -e | head 

dinamikong real-time nga pagtan-aw sa usa ka nagdagan nga sistema sama sa gipakita sa screenshot sa ubos:

# top 

Basaha kini alang sa dugang nga top nga mga pananglitan sa paggamit: 12 TOP Command Examples sa Linux

Ang pagtan-aw usa ka bag-o nga himan sa pag-monitor sa sistema nga adunay mga advanced nga bahin:

# glances

Alang sa usa ka komprehensibo nga giya sa paggamit, basaha pinaagi sa: Glances – Usa ka Advanced Real Time System Monitoring Tool para sa Linux

Adunay daghang uban pang mapuslanon nga mga himan sa pagmonitor sa sistema sa Linux nga imong magamit sa paglista sa mga aktibo nga proseso, ablihi ang link sa ubos aron mabasa ang dugang bahin niini:

  1. 20 Command Line Tools sa Pagmonitor sa Linux Performance
  2. 13 Mas Mapuslanon nga Linux Monitoring Tools

Giunsa Pagkontrol ang mga Proseso sa Linux

Ang Linux usab adunay pipila ka mga sugo alang sa pagkontrolar sa mga proseso sama sa pagpatay, pkill, pgrep ug killall, sa ubos mao ang pipila ka sukaranang mga pananglitan kon unsaon kini paggamit:

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

Aron mahibal-an kung giunsa paggamit kini nga mga sugo sa lawom, aron mapatay/tapuson ang mga aktibo nga proseso sa Linux, ablihi ang mga link sa ubos:

  1. Usa ka Giya sa Pagpatay, Pkill ug Pagpatay sa mga Sugo sa Pagtapos sa Proseso sa Linux
  2. Unsaon Pagpangita ug Pagpatay sa Mga Proseso sa Pagdagan sa Linux

Timan-i nga mahimo nimo kining gamiton sa pagpatay sa dili motubag nga mga aplikasyon sa Linux kung ang imong sistema nag-freeze.

Ang sukaranan nga paagi sa pagkontrol sa mga proseso sa Linux mao ang pagpadala mga signal sa kanila. Adunay daghang mga signal nga mahimo nimong ipadala sa usa ka proseso, aron makita ang tanan nga mga signal nga nagdagan:

$ kill -l

Aron magpadala usa ka signal sa usa ka proseso, gamita ang kill, pkill o pgrep nga mga mando nga among gihisgutan sa sayo pa. Apan ang mga programa makatubag lamang sa mga signal kung kini giprograma aron mailhan ang mga signal.

Ug kadaghanan sa mga signal alang sa internal nga paggamit sa sistema, o alang sa mga programmer kung nagsulat sila og code. Ang mosunod mao ang mga signal nga mapuslanon sa usa ka user sa sistema:

  • SIGHUP 1 – gipadala sa usa ka proseso kung ang nagkontrol nga terminal niini sirado.
  • SIGINT 2 – gipadala ngadto sa usa ka proseso pinaagi sa nagkontrol nga terminal niini kung ang usa ka user mobalda sa proseso pinaagi sa pagpindot sa [Ctrl+C].
  • SIGQUIT 3 – gipadala sa usa ka proseso kung ang user magpadala ug quit signal [Ctrl+D].
  • SIGKILL 9 – kini nga signal mohunong dayon (makapatay) sa usa ka proseso ug ang proseso dili mohimo ug bisan unsang mga operasyon sa paglimpyo.
  • SIGTERM 15 – kini usa ka senyales sa pagtapos sa programa (pagpatay ang magpadala niini pinaagi sa default).
  • SIGTSTP 20 – gipadala sa usa ka proseso pinaagi sa nagkontrol nga terminal niini aron hangyoon kini nga mohunong (terminal stop); gisugdan sa user nga nagpindot sa [Ctrl+Z].

Ang mosunod mao ang mga kill commands nga mga pananglitan sa pagpatay sa Firefox nga aplikasyon gamit ang PID niini sa higayon nga kini mag-freeze:

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

Aron patyon ang usa ka aplikasyon gamit ang ngalan niini, gamita ang pkill o killall sama niini:

$ pkill firefox
$ killall firefox 

Sa sistema sa Linux, ang tanan nga aktibo nga proseso adunay usa ka prayoridad ug usa ka nindot nga kantidad. Ang mga proseso nga adunay mas taas nga priyoridad kasagaran makakuha og mas daghang oras sa CPU kaysa mas ubos nga mga proseso nga prayoridad.

Bisan pa, ang usa ka tiggamit sa sistema nga adunay mga pribilehiyo sa gamut mahimo’g maimpluwensyahan kini sa maayo ug renice nga mga mando.

Gikan sa output sa top command, ang NI nagpakita sa proseso nga nindot nga bili:

$ top  

Gamita ang nindot nga sugo sa pagtakda og nindot nga bili alang sa usa ka proseso. Hinumdumi nga ang mga normal nga tiggamit mahimo’g magbutang usa ka maayong kantidad gikan sa zero hangtod 20 sa mga proseso nga ilang gipanag-iya.
Ang gamut nga tiggamit lamang ang makagamit sa negatibo nga nindot nga mga kantidad.

Aron mabag-o ang prayoridad sa usa ka proseso, gamita ang renice nga mando sama sa mosunod:

$ renice +8  2687
$ renice +8  2103

Tan-awa ang among pipila ka mapuslanon nga mga artikulo kung giunsa pagdumala ug pagkontrol ang mga proseso sa Linux.

  1. Pagdumala sa Proseso sa Linux: Pag-boot, Pag-shutdown, ug Tanan sa Taliwala
  2. Pangitaa ang Top 15 nga Proseso pinaagi sa Memory Usage gamit ang 'top' sa Batch Mode
  3. Pangitaa ang Nanguna nga Mga Proseso sa Pagdagan pinaagi sa Labing Taas nga Memorya ug Paggamit sa CPU sa Linux
  4. Unsaon Pagpangita sa Pangalan sa Proseso Gamit ang Numero sa PID sa Linux

Kana lang sa pagkakaron! Aduna ka bay mga pangutana o dugang nga mga ideya, ipaambit kini kanamo pinaagi sa porma sa feedback sa ubos.