Paano Patayin ang isang Proseso sa Linux

How Kill Process Linux



Ang bawat operating system ng Linux ay may kasamang command na pumatay. Ang nag-iisang layunin ng tool na ito ay upang wakasan ang isang proseso ng target. Ito ay isang napakalakas na tool na ginagawang maraming nalalaman ang Linux, lalo na sa mga patlang ng server at enterprise kung saan ang isang pangunahing pagbabago / pag-update ay maaaring magkabisa nang hindi muling nai-restart ang buong makina. Sa artikulong ito, ipapakita ko kung paano pumatay ng isang proseso gamit ang patayin , pkill at patayin lahat .

Pagpatay sa isang proseso

Para sa pagpatay sa isang proseso, gagamit kami ng maraming mga tool: patayin , pkill , at patayin lahat . Lahat ng mga ito ay gumagana nang pareho sa parehong paraan.







Ang mga tool na ito ay hindi winakasan ang proseso mismo. Sa halip, nagpapadala sila ng isang itinalagang signal sa target na proseso o proseso ng mga pangkat. Kung hindi ka tumukoy ng anumang tukoy na signal, ipapadala ang SIGTERM bilang default signal. Gayunpaman, mayroong isang bilang ng mga sinusuportahang signal, halimbawa, SIGKILL, SIGHUP atbp.



Narito ang pangunahing istraktura ng utos para sa patayin , pkill at patayin lahat .



$patayin <signal_or_options> <PID(s)>
$ pkill<signal_or_options> <proseso_name>
$patayin lahat <pagpipilian> <proseso_name>

Kailanman posible, inirerekumenda na gamitin patayin .





Patayin , pkill at patayin lahat lokasyon

Patayin ang default na utos para sa pagtatapos ng isang proseso.



$patayin --tulong

Patakbuhin ito mula sa direktoryo / usr / bin.

$alin patayin

Ang benepisyo ay, pinapayagan din ang pag-access sa pkill, isa pang utos na katulad ng pagpatay na nagpapahintulot sa pagtatapos ng proseso batay sa kanilang pangalan.

$pkill--tulong

$alinpkill

Ang ilang mga app ay nagpapatakbo ng maraming proseso ng parehong maipapatupad. Kung nais mong wakasan ang isang bilang ng mga proseso na may parehong pangalan, gamitin ang tool na killall.

$patayin lahat --tulong

$alin patayin lahat

Listahan ng lahat ng mga tumatakbo na proseso

Ang pinakaunang gawain ay kilalanin ang PID (proseso ng pagkakakilanlan numero) at / o ang pangalan ng proseso na nais mong wakasan. Para sa halimbawang ito, gagamitin ko ang Firefox bilang target na proseso upang wakasan. Patakbuhin ang sumusunod na utos upang ilista ang lahat ng mga tumatakbo na proseso sa system.

$ps -TO

Para sa karamihan ng mga gawain, kailangan nating malaman ang PID ng target na proseso. Gayunpaman, sa ilang mga sitwasyon, ang paggamit ng pangalan ng proseso ay mas angkop.

Kung alam mo ang eksaktong pangalan ng target na proseso, maaari mong direktang makuha ang paggamit ng PID pidof .

$pidof <proseso_name>

Ang isa pang kagiliw-giliw na tool upang makuha ang impormasyon tungkol sa target na proseso ay pgrep. Partikular itong idinisenyo para sa hangarin.

$pgrep<pagpipilian> <proseso_name>

Pumatay signal

Ngayon, tingnan natin ang mga signal na sinusuportahan ng mga tool ng pagpatay. Ito ay isang malaking listahan. Siyempre, hindi lahat sa kanila ay kinakailangan para sa bawat solong sitwasyon. Sa katunayan, ang karamihan sa mga sitwasyon ay nangangailangan lamang ng kaunting mga signal.

Una, tingnan natin ang listahan na pumatay sa mga suporta.

$patayin -ang

Mayroong 2 paraan upang tukuyin kung aling signal ang nais mong ipadala. Maaari mong gamitin ang buong pangalan ng signal o ang katumbas na halaga nito.

$patayin-<signal> <PID>

O,

$patayin-<signal_value> <PID>

Ang pinakatanyag na signal ay ang SIGHUP (1), SIGKILL (9) at SIGTERM (15). Pangkalahatan, ang SIGTERM ay ang default at pinakaligtas na paraan upang wakasan ang isang proseso ng target.

Sa kaso ng pkill, ang sinusuportahang signal ay kapareho ng pumatay. Gayunpaman, sa kaso ng killall, ang bilang ng mga sinusuportahang signal at ang mga pangalan ng signal ay magkakaiba.

$patayin lahat -ang

Pagpatay sa isang proseso

Upang patayin ang isang proseso, kailangan namin ng PID ng target na proseso. Ipagpalagay na mayroon kang PID, patakbuhin ang sumusunod na utos upang patayin ito.

$patayin <pagpipilian> <PID>

Dito, ipapadala ng pumatay ang default na signal SIGTERM sa (mga) PID. Kung nais mong wakasan ang maraming proseso, pagkatapos ay banggitin ang lahat ng mga PID na pinaghiwalay ng espasyo.

$patayin <pagpipilian> <PID_1> <PID_2>

Tukuyin natin kung aling signal ang nais mong ipadala sa target.

Nais mong wakasan ang isang proseso gamit ang pangalan lamang nito? Gumamit ng pkill.

$pkill<pagpipilian> <proseso_name>

Sa ilang mga kaso, ang isang partikular na aplikasyon ay maaaring may masyadong maraming mga proseso na tumatakbo. Ang pagta-type sa lahat ng mga PID na iyon ay nakakaubos ng oras at nakakapagod. Sa mga ganitong sitwasyon, gagamitin namin ang tool na killall. Ito ay halos kapareho sa pumatay ngunit gumagana ito sa pangalan ng proseso.

$patayin lahat <pagpipilian> <proseso_name>

Halimbawa, kapag nagpapatakbo ng Firefox, nagsisimula ito ng kaunting mga proseso. Upang patayin silang lahat nang sabay-sabay, patakbuhin ang utos na ito.

$patayin lahatfirefox

Nais mong wakasan ang lahat ng mga proseso na tumatakbo sa ilalim ng isang tiyak na gumagamit? Killall ay maaaring gawin ang trabaho, walang problema. Mag-ingat kapag pinatakbo ang isang ito dahil maaaring masira ang system at lumikha ng iba pang mga isyu. Hindi ito gagana kung sinusubukan mong wakasan ang mga proseso na tumatakbo sa ilalim ng ibang gumagamit na may mas mataas na pribilehiyo.

$patayin lahat -u <gumagamit>

Salungatan sa pahintulot

Nalalapat din ang mga likas na katangian ng hierarchy ng gumagamit ng Linux kapag magtatapos ka na ng isang application. Hindi maaaring wakasan ng isang gumagamit ang mga proseso na tumatakbo nang may mas mataas na pribilehiyo, isang proseso lamang na may pantay / mababang pribilehiyo. Bukod dito, hindi maaaring manipulahin ng isang gumagamit ang mga proseso na tumatakbo sa ilalim ng iba't ibang gumagamit.

Halimbawa, isaalang-alang natin ang oo utos. Kung tinawag ito bilang kasalukuyang gumagamit, madali itong matatapos gamit ang kill.

$patayin oo

Ngayon, paano kung oo ay tumatakbo sa ilalim ugat ? Ang pagtawag sa pumatay bilang kasalukuyang gumagamit ay hindi gagana.

Katulad nito, kung ang isang proseso ay tumatakbo sa ilalim ng isa pang gumagamit, hindi mo ito maaaring wakasan mula sa ibang account ng gumagamit.

Pangwakas na saloobin

Sa artikulong ito, ang mga pangunahing kaalaman lamang at karaniwang paggamit ng mga utos na ito ay ipinakita. Ang mga tool na pumatay na ito ay may kakayahang higit pa rito. Upang magkaroon ng malalim na kaalaman sa mga kakayahan ng anumang tool, inirerekumenda kong suriin ang pahina ng tao.

$lalaki patayin

$lalakipkill

Mag-enjoy!