Paano Patayin ang Proseso ayon sa Pangalan sa Linux

Puwersahang huminto sa mga proseso ng maling pagkilos gamit ang mga Linux command na ito

Upang ipaliwanag ang kahulugan ng isang 'Proseso' sa pinakasimpleng mga salita ay ito ay isang tumatakbong halimbawa ng anumang application o program sa iyong system. Maaaring nagpapatakbo ka ng maraming application nang sabay-sabay gaya ng pagba-browse, pakikinig sa musikang gumagana sa iyong terminal, atbp. Maraming proseso sa background na nauugnay sa mga application na ito na pinapatakbo ng user.

Ang bawat application o isang program na tumatakbo sa iyong system ay lumilikha ng maraming proseso na nauugnay sa iyong solong aplikasyon. Minsan ito ay maaaring isang problema at ang pag-alis sa mga prosesong ito ay ang tanging opsyon na mayroon ka.

Ang 'pagpatay' sa isang proseso ay isang kapaki-pakinabang na opsyon na ibinibigay sa iyo ng Linux upang ihinto ang mga patuloy na proseso, ito man ay isang proseso sa harapan o isang proseso sa background. Sa artikulong ito, susuriin namin ang mga utos tulad ng pumatay, pkill at patayin lahat upang puwersahang itigil ang anumang proseso sa isang sistema.

Bakit pumatay ng isang Proseso?

Ang pag-unawa sa konsepto ng pagpatay sa isang proseso ay mahalaga bago magpatuloy sa tutorial na ito. Ang pagpatay ay maaaring mukhang isang napaka-brutal na paraan upang ipahayag ang konsepto, ngunit kung ano ang makasagisag na ibig sabihin nito ay ang puwersahang i-abort ang isang proseso.

Ngayon, bakit abort o huminto sa isang patuloy na proseso? Kapag maraming proseso ang tumatakbo sa background, lahat o iilan sa mga ito ay maaaring mag-malfunction at maaaring maging sanhi ng hindi magandang pagkilos ng iyong system. Naaantala nito ang iyong mga patuloy na gawain dahil ang hindi gumaganang proseso ay maaaring mag-freeze ng iyong system nang ilang sandali.

Kung minsan, ang pagtigil sa lahat ng proseso ng maling pagkilos ay tila ang tanging opsyon upang maibalik ang normal sa iyong system. Binibigyang-daan ka ng Linux na pumatay ng isang proseso gamit ang pid o ang pangalan ng proseso.

Gamit ang pgrep utos

Karamihan sa mga gumagamit ng Linux ay pamilyar sa grep utos. Ang pgrep Ang command ay maaaring gamitin sa mga katulad na linya ng grep.

pgrep command kapag ginamit, ipinapakita ang pid ng proseso ng pagpapatakbo tulad ng tinukoy sa utos. Ang utos na ito ay magiging kapaki-pakinabang habang ginagamit ang pkill utos.

Pangkalahatang Syntax:

pgrep [mga opsyon] [pattern]

Mahahalagang opsyon na magagamit sa pgrep utos

PagpipilianPaglalarawan
-ulist process id na pagmamay-ari ng isang partikular na user
-cbilangin ang bilang ng mga proseso ng pagtutugma
-akoilista lamang ang mga pangalan ng proseso
-ailista ang buong landas ng pangalan ng proseso

Ipakita natin ang paggamit ng pgrep utos gamit ang isang halimbawa.

pgrep -u gaurav gnome

Dito, nais naming makita ang pids ng prosesong gnome na pag-aari ng user na 'gaurav'. Pagpipilian -u nagpapahintulot sa iyo na ilista ang pids ng mga prosesong pagmamay-ari ng isang partikular na user. Sa kasong ito, ang user gaurav.

Output:

gaurav@ubuntu:~$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$

Habang nagpapatuloy tayo sa tutorial na ito, pgrep command ay makakatulong sa amin sa pagkumpirma kung ang proseso ay pinatay na o tumatakbo pa rin.

Lumipat tayo ngayon sa pkill utos at pagpapatupad nito.

Gamit pkill utos

Maaari mong gamitin ang pkill command sa Linux na patayin ang proseso gamit ang pangalan ng proseso. Kahit na hindi mo alam ang pid ng ilang proseso, kahit na pagkatapos ay maaari mong patayin ang partikular na proseso gamit ang pkill utos.

Maaaring tukuyin ang mga proseso kasama ang kanilang kumpletong pangalan o ang bahagyang pangalan habang ginagamit ang pkill utos. Kahit na ilagay mo ang bahagyang pangalan ng proseso, ang pkill Ang command ay tutugma sa lahat ng tumatakbong proseso na may katugmang pangalan na iyong inilagay sa command.

Syntax:

pkill [mga opsyon][process_name_pattern] 

Halimbawa:

Ipakita natin ang mga prosesong kasalukuyang tumatakbo gamit ang itaas utos. Maaari mo ring gamitin ang ps utos na ilista ang mga proseso.

itaas
tuktok - 14:24:02 pataas 3:12, 1 user, average ng load: 0.29, 0.48, 0.58 Mga Gawain: 221 kabuuan, 1 tumatakbo, 172 natutulog, 0 tumigil, 1 zombie %Cpu(s): 5.6 us, 1.0 sy , 0.0 ni, 92.9 id, 0.4 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 3928240 total, 610456 free, 2233152 used, 1084632 buff/cache KiB Swap: 40838 free 1187268 mapakinabangan Mem PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 4077 gaurav 20 0 3312128 673480 118360 S 19.6 17.1 15: 13.23 Web Content 3712 gaurav 20 0 3953008 453544 116476 S 4.0 11.5 9: 28.39 MainThread 2010 gaurav 20 0 4084232 111096 45,024 S 1.7 2.8 3: 14.85 gnome-shell 1197 ugat 20 0 1039612 33704 22988 S 1.0 0.9 3: 04,42 Xorg 1426 couchdb 20 0 3772396 16908 2520 S 0.7 0.4 1: 50.83 beam.smp 3288 gaurav 20 0 722480 25048 18272 S 0.7 0.6 0: 06,84 gnome-terminal- 3915 gaurav 20 0 2804900 231524 111228 S 0.7 5.9 0: 54.42 Web content 4146 gaurav 20 0 3017924 245304 120604 S 0.7 6.2 2: 01,21 Web content 4417 gaurav 20 0 2964208 234396 119160 S 0.7 6.0 0 :59.90 Web Content 4860 gaurav 20 0 3066800 372920 132544 S 0.7 9.5 0:48.20 Web Content 16007 gaurav 20 0 41944 3780 3116 R 0.0: 8 top 

Gamit itaas command ay magpapakita ng maramihang mga proseso sa iyong terminal. Subukan nating ipakita ang proseso na may partikular na pangalan. Gagamitin natin ang grep command upang ipakita ang isang proseso na ang pangalan ay tumutugma sa string na 'mongo'.

tuktok | grep -i mongo

Tandaan: Dito, ginamit ko ang -i na opsyon para gawing case-insensitive ang paghahanap.

Ang output ng command na ito ay magpapakita ng mga proseso na tumutugma sa pangalang 'mongo'

 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1: 03,22 mongod 1158 MongoDB 20 0 288564 4848 1320 S 1.0 0.1 1: 03,25 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1: 03,27 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1: 03,29 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1: 03,31 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1: 03,33 mongod 1158 MongoDB 20 0 288564 4848 1320 S 1.0 0.1 1: 03,36 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1: 03,38 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1: 03,40 mongod 1158 MongoDB 20 0 288564 4848 1320 S 1.0 0.1 1: 03,43 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1: 03,45 mongod 1158 MongoDB 20 0 288564 4848 1320 S 1.0 0.1 1: 03,48 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.3 0.1 1: 03,49 mongod 1158 MongoDB 20 0 288564 4848 1320 S 1.0 0.1 1: 03,52 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1:03.54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.57 mongod

Ngayon, gagamitin natin ang pkill utos na patayin ang prosesong pinangalanang 'mongo'.

pkill mongo

Papatayin na ngayon ng utos na ito ang proseso ng mongo. Maaari naming kumpirmahin kung ang proseso ay pinilit na huminto sa pamamagitan ng paggamit ng pgrep utos na nagpapakita ng pid ng prosesong tumatakbo ayon sa pamantayang tinukoy ng user.

gaurav@ubuntu:~$ pgrep mongo gaurav@ubuntu:~$

Walang ibabalik na halaga ang utos na ito. Ito ay nagpapatunay na ang prosesong ‘mongo’ ay pinapatay na ngayon gamit ang pkill utos.

Mga opsyon na madalas na ginagamit sa pkill utos

Habang ginagamit ang pkill utos na kakailanganin natin ang mga nabanggit na opsyon para sa wasto at walang hirap na paggamit ng pkill utos.

Mga pagpipilianPaglalarawan
-ftumugma laban sa buong argumento kabilang ang mga puwang, quote, mga espesyal na character
-uupang ipaalam ang proseso ng pkill upang tumugma sa prosesong pinapatakbo ng tinukoy na user
-1nire-reload ang proseso
-9pinapatay ang proseso
-15maganda ang pagpapalaglag ng isang proseso

Tingnan natin ang isa pang halimbawa ng pkill utos gamit ang -f opsyon.

Mayroong dalawang utos na kasalukuyang ipinapatupad sa terminal tulad ng ipinapakita sa ibaba.

ping bbc.com ping youtube.com

Ang parehong mga proseso ay pinasimulan ng ping utos. Ngayon, ipagpalagay na nais naming wakasan lamang ang isang proseso na "ping youtube.com" pagkatapos ay kailangan naming gamitin ang -f opsyon kasama ang pkill command na pumapatay sa isang proseso na may partikular na pangalan kasama ang mga puwang at mga panipi mula sa pangalan ng proseso.

Utos:

gaurav@ubuntu:~$ pkill -f "ping youtube.com" gaurav@ubuntu:~$ 

Resulta:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56(84) byte ng data. 64 bytes mula sa bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=1 ttl=117 time=30.9 ms 64 bytes mula sa bom12s08-in-f14.1e100.net (142.250.net) =117 oras=121 ms 64 byte mula sa bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=206 ttl=117 oras=86.5 ms 64 byte mula sa bom12s08-in-f14.20. ): icmp_seq=207 ttl=117 oras=105 ms Tinapos na gaurav@ubuntu:~$ 

Dito, ang "ping sa youtube.com"Ang proseso ay pinapatay na ngayon at ang"ping bbc.com” tumatakbo pa rin sa terminal.

Kung sakaling, kung ginamit namin ang pkill ping utos, papatayin sana nito pareho ang ping mga proseso, na hindi kanais-nais.

Mga signal na ginamit kasama ng pkill utos

pkill pinipilit ang isang proseso na huminto sa pamamagitan ng pagpapadala ng isang partikular na signal sa prosesong iyon. May tatlong posibleng signal na pkill maaaring ipadala ang command sa proseso depende sa utos na ibinibigay ng user.

Ang sumusunod ay ang listahan ng mga signal na magagamit.

SignalPagtutukoy
1(HUP)nire-reload ang tinukoy na proseso
9 (PATAYIN)pinapatay ang tinukoy na proseso
15 (TERM)dahan-dahang ihihinto o i-abort ang prosesong tinukoy

Para sa tutorial na ito, tayo ay lubos na aasa sa PATAYIN hudyat. Dumaan tayo sa ilang mga halimbawa upang mas maunawaan ito.

Gamit ang pgrep utos para makuha ang pid tumutugma laban sa pangalan ng apache.

gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill -KIll apache

O maaari mo ring gamitin ang command na may mga numero (hal. 1, 9, 15)

pkill -9 apache

Ang parehong mga utos na ipinakita sa itaas ay papatayin ang proseso ng apache. Kinukumpirma sa pgrep utos muli.

gaurav@ubuntu:~$ pgrep apache gaurav@ubuntu:~$

Bilang ang pgrep command ay hindi nagbabalik ng output, nagpapatunay na ang proseso ng apache ay pinatay.

Konklusyon

Sa tutorial na ito, natutunan namin ang tungkol sa pkill command at kung paano ito ginagamit upang patayin ang proseso gamit ang pangalan ng proseso nang direkta. Nalaman din namin ang tungkol sa pgrep command na ginagamit upang kunin ang process id ng prosesong pinapatakbo ng sinumang partikular na user. Ang pgrep Binibigyang-daan tayo ng command na i-cross-check kung napatay ang proseso.