Patayin ang isang proseso sa isang solong utos

Maraming beses na kailangan nating pumatay ng isang proseso sa pamamagitan ng isang terminal. Kung alam natin ang buong pangalan ng proseso (halimbawa: Kate) wala kaming mga problema, isang simple:

killall kate

Nalulutas nito ang problema sa amin ... ngunit ano ang mangyayari kung hindi namin alam ang eksaktong pangalan ng proseso?

Sa mga pagkakataong iyon, kailangan nating ilista ang lahat ng mga proseso ps aux tulad ng ipinakita sa sumusunod na screenshot:


Pagkatapos hanapin ang PID ng proseso, kung saan sa kasong ito hinahanap namin ang PID ng Kate:


Sa pamamagitan ng gawin ang isang:

kill 3808

At voila, doon pinapatay natin ang proseso.

Sa gayon ... sa isang solong linya maaari nating hanapin ang proseso (nang hindi kailangang malaman ang buong pangalan nito), alamin ang PID nito, at patayin din ito:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

Tulad ng nakikita mo:

  1. Inililista namin ang mga proseso (ps aux)
  2. Hindi namin alam ang buo o eksaktong pangalan ng Kate (hey, maaaring ito ay kate-editor o isang katulad nito) kaya sinasala lang namin ang kat (grep kat)
  3. Ngunit makakakuha kami ng dalawang proseso na nauugnay sa kat kung gagamitin lamang namin ang filter na ito, ang isa ay ang proseso ng kate, at isa pa na ang proseso na pinapagana namin para sa pag-filter, iniiwan ko sa iyo ang isang screenshot upang matapos mo ang pag-unawa: (Pansinin na mayroong 2 linya, iyon ay, 2 proseso)

  4. Upang maiwasan ang ipinaliwanag dati, gumawa kami ng isa pang filter (grep -v grep). Ano ang gagawin namin sa kabaligtaran ... kung nagsala kami gamit ang grep, ipapakita lamang nito ang mga tugma sa filter, na rin sa grep -v Inuutusan ka namin HINDI ipakita ang mga tugma, ngunit upang ipakita kung ano ang hindi tumutugma. Ipinapakita ko sa iyo ang screenshot kung paano magiging malayo ang resulta: (Pansinin na ang proseso lamang ni kate ang lilitaw)

  5. Kaya, naihiwalay na namin ang proseso na nais nating patayin, ngayon ay kailangan lang nating kunin ang PID na ito ay ang ika-2 na numero, iyon ay, 4062. At ang PID ay nasa ika-2 haligi (Naglalaman ang ika-1 haligi ng gumagamit na may UID 1000), kaya gamit ang awk maaari nating sabihin na ipinapakita lamang mula sa linya na iyon kung ano ang matatagpuan sa ika-2 haligi (awk '{print $ 2}'). Na magpapakita lamang sa amin ng bilang ng proseso, iyon ay, ang PID lamang ang lilitaw sa terminal.
  6. Ngunit hindi namin nais na ipakita ang PID, ang nais namin ay patayin ang proseso sa PID na iyon ... kaya gagawin namin iyon, ipinapasa namin ang mayroon tayo hanggang sa utos pumatay at handa na (pumatay xargs)
  7. Ano ang ibig sabihin ng xargs na iyon? ... simple, sa kasong ito hindi namin maipasa ang PID upang pumatay lamang sa mga tubo ( | ), ito ay simpleng hindi sapat, kaya xargs (na nagbibigay-daan upang ipasa ang mga halaga o data at pagkatapos ay isagawa o patayin ang mga ito) ay kung ano ang magpapahintulot sa amin na tapusin ang trabaho.

At dito nagtatapos ito 😀

Oo ... Alam kong ito ay tila medyo kumplikado, na kung saan ay tiyak kung bakit sinubukan kong ipaliwanag ito sa abot ng aking makakaya.

Alam ko na posibleng kakaunti ang mangangailangan ng utos na ito, ngunit ang layunin ng artikulong ito ay kapareho ng sa DesdeLinux, turuan sila ng bago araw-araw, laging sinusubukang mawala ang takot nila sa Linux... at, sa personal, gusto ko rin silang matutong gumamit ng terminal nang walang takot 😉

Gayunpaman ... sana natagpuan mo itong kawili-wili, patuloy kong natutunan kung paano gamitin ang awkward alin talaga ang galing hehe.

Regards


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   ezitoc dijo

    Totoo, naging kapaki-pakinabang sa akin ang awk at sa palagay ko ang sinumang nangangailangan na manipulahin ang mga nakabalangkas na mga file ng teksto ay inirerekomenda na malaman kung paano ito gamitin.

    Mayroon lamang akong isang katanungan (walang kinalaman sa input: D), paano (at sa anong programa) mo ginawa ang blur effect na nagbibigay-daan sa iyong i-highlight ang isang bahagi ng screenshot?

    Pagbati.

    1.    ezitoc dijo

      Pagsubok kung ito ay mula sa format gumagana ito at kung hindi may nagsasabi sa akin kung paano ito gawin

      Maraming salamat sa inyo.

    2.    KZKG ^ Gaara dijo

      Well yes ... Natuklasan ko ulit ang Linux ngayon na alam ko kung paano magtrabaho kasama ang awk HAHAHAHA.
      Tungkol sa epekto at ganyan, wala ... Gimp lang 😀

      Pinipili ko ang bahagi na nais kong i-highlight, gupitin ito ng [Ctrl] + [X] at i-paste ito bilang isang bagong layer, pagkatapos ay pipiliin ko ang mas mababang layer (na kung saan ang nais kong opaque) at pumunta sa Mga Filter- »Gaussian (o kung ano ang isulat mo hehe) at voila.
      Ngayon, upang mabigyan ito ng madilim na epekto, lumikha lamang ako ng isang bagong layer (puting background) at ilagay ito sa pagitan ng dalawang ito na mayroon na ako, binibigyan ko ito ng itim na kulay at sa transparency bar (itaas na kanang sulok) inililipat ko ito sa kung saan ko nakamit ang nais na epekto .

      Pagbati at salamat sa komento 🙂

      1.    Roberto Evolving Santana dijo

        Malaki !!

  2.   Manwal ng Pinagmulan dijo

    Kung ang proseso ay mula sa isang program na nakikita, walang mas komportable kaysa sa pag-type xkill sa console, mag-click sa programa upang pumatay, at mag-voila.

    1.    KZKG ^ Gaara dijo

      mag-click sa programa upang pumatay
      hehe yeah ... ipagpalagay na mayroon kang GUI hehe.

      1.    Manwal ng Pinagmulan dijo

        Tama iyon, kaya't sinabi kong "kung ang proseso ay mula sa isang program na nakikita."

        1.    Windousian dijo

          Mas madaling mag-click sa pindutan na may "X". Mayroon pa ring button na GNOME Shell di ba? :-D.

          1.    Manwal ng Pinagmulan dijo

            Kung ang programa ay nagyeyelo (na kung saan ay ang pangunahing dahilan kung bakit kailangan mong patayin ang proseso nito) lohikal na ang pindutan na ito ay hindi tutugon kahit gaano mo ito pipindutin.

            Sa palagay ko ay aalisin ito ng GNOME Shell sa lalong madaling panahon upang makita mo ang nakapagtataka na takip ng pagsasara ng mga bintana sa pamamagitan ng pag-drag sa kanila sa ilalim ng screen tulad ng sa Windows 8. Hindi na kailangang sabihin, sa mga monitor ng widescreen ito ay isang kamangha-manghang ehersisyo.

          2.    Windousian dijo

            Naiintindihan ko na ngayon. Sa kasong iyon mas gusto ko ang Control + Alt + Esc (sa KDE).

            Hindi ako makapaghintay na makita ang mga bagong preview ng GNOME Shell, ang mga ito ay tunay na tinatrato.

  3.   angkop dijo

    Ginagawa ito pareho ngunit mas kaunti ang nakasulat.
    Sa kasong ito kinuha ko ang leafpad bilang isang halimbawa kung bakit lumilitaw ang dahon sa grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    Regards

  4.   Sys dijo

    Phew! Anak ko, subukang patakbuhin ang "pgrep kat", na kung saan ay "pgrep" para sa isang bagay.

    At upang maipatupad ang "man pgrep". At ang "man pidof", na kung minsan ay "pidof" ay makakatulong sa iyo.

    At upang maipatupad «ps aux | grep [k] sa ", na hindi magbabalik" ng proseso na aming ginawang aktibo para sa pag-filter "na iyong binigyan ng puna bilang isang resulta, sa gayon ay nagse-save ka.

    Pagbati!

    1.    Sys dijo

      Oh, at "pkill", na ginagawa kung ano ang iyong hinahanap. Halimbawa: "pkill kat".

    2.    KZKG ^ Gaara dijo

      Ay, nakakainteres ... hindi ko alam pgrep 🙂
      Salamat sa tip 😀

      1.    Sys dijo

        Salamat sa iyo at sa iyong mga artikulo.

        Nga pala, sa https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ magkomento sa pamamaraan ng paggamit ng mga utos tulad ng «ps aux | grep [n] program_name ", ipinapaliwanag nila ito nang mas mahusay kaysa sa akin doon.

        Pagbati!

        1.    KZKG ^ Gaara dijo

          Salamat sa link 😀
          Iyan ang cool na bagay tungkol dito na umiiral. DesdeLinux…hindi mahalaga kung ikaw ay isang user, editor o admin, lahat tayo ay laging natututo ng mga bagong bagay 🙂

          Pagbati at salamat ulit kaibigan.

  5.   gastos dijo

    Maraming salamat sa iyong oras at dedikasyon, sulit na bisitahin at mabasa ang site na ito nang maraming beses sa isang araw.

    Salamat ulit.

  6.   Ginoong Linux. dijo

    KZKG ^ Ang Gaara ay halos palaging magkapareho, pagdating sa mga ganitong uri ng mga tip, may isa pang tao na gumagawa ng pareho sa isang simpleng utos. Ngunit binabati ko siya, palagi siyang patuloy na nagbibigay.

    1.    KZKG ^ Gaara dijo

      hehe yep ... Alam ko kung paano gawin ang X osa at pumunta ako dito at ibahagi ang pamamaraan, ngunit pagkatapos ay nagbabahagi sila ng isang mas simpleng paraan upang makamit ang parehong bagay hahaha, ngunit sa ito lahat tayo ay nanalo, tama ba? 😀

      1.    truko22 dijo

        Tama yan 0 /

      2.    Manwal ng Pinagmulan dijo

        Hahaha, palagi kang pumupunta sa pinaka masalimuot na paraan. 😀

        1.    KZKG ^ Gaara dijo

          HAHAHA oo, lagi kong iniisip: «Kung alam ko kung paano gawin ito sa mahirap na paraan, malalaman ko kung paano matutunan na gawin ito sa simpleng paraan nang walang mga problema.»At… sa kabaligtaran, hindi ito gumagana nang pareho hahaha.

  7.   Oscar dijo

    Ang problema ay kung mayroon tayong dalawang proseso na may magkatulad na pangalan.
    Halimbawa, isang proseso ng kate, at isa pang proseso ng ... mmm ... sabihin nating kater xD
    Sa ganoong utos, papatayin nating pareho, di ba?

    1.    KZKG ^ Gaara dijo

      Well yeah, mangyayari iyan 🙂

  8.   truko22 dijo

    TT kawawang Kate. Gumagamit ako ay xkill sa KDE mabilis itong inilunsad sa "ctrl + alt + esc" o may "ctrl + Esc" bukas "Mga Aktibidad ng System" at ginagawa ito nang grapiko. Ngayon ang pamamaraang ito sa pamamagitan ng terminal ay dapat matutunan, kahit na mayroon akong isang server ng bahay na may matatag na debian at hindi talaga iyon nabitin.

  9.   Yuliana dijo

    Malaki! sa ngayon na kumukuha ako ng kurso sa mga operating system at kailangan kong magsagawa ng mga gawain sa terminal, ang iyong tutorial ay malaking tulong! salamat

  10.   Pablo dijo

    Napakahusay na ipinaliwanag, mahusay ang blog na ngayon ko lang nakilala, itinuturo ko ito sa mga paborito. Salamat.

  11.   Mamaya dijo

    Sa gayon, mabuti, bagaman may ilang mga oras na hindi sila mapapatay ....

  12.   Si Dcoy dijo

    pkill -9

    1.    Si Dcoy dijo

      pkill -9 "pangalan ng proseso"
      sa nakaraang puna inilagay ko «» ngunit hindi ito lumabas xD

  13.   pinakabago dijo

    magandang gabi, may oras ako sa pagbabasa ng iyong feed at ngayon nagpasya akong subukan ang utos na ps ax | grep chrome | grep -v grep | awk '{print $ 1}' | xargs pumatay at nakukuha ko ang sumusunod na error sa pagpatay: hindi makahanap ng proseso na "?" sa kaunting karanasan na mayroon ako sa bash nagpasya akong gumawa ng ilang mga pagbabago at sa huli ay naiwan ako sa ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs pumatay na ibinigay na ang ps -A ay ginagamit upang ipakita ang lahat ng mga proseso sa isang buod na paraan at ang pangalawang anomalya ay itinapon nito ang TTY «?» at nagtrabaho ito para sa akin maraming salamat talaga gusto ko ang iyong blog, pagbati

  14.   Miguel dijo

    Salamat compa, hindi mo maisip ang dami ng mga problema na nalutas mo lang para sa akin sa utos na ito.

    Pagbati!

  15.   email dijo

    SALAMAT !!!!

  16.   Arthur dijo

    Mahusay na post. Kung ano ang hinahanap ko at hindi alam kung paano gawin ito, at napakahusay ng paliwanag.

    Pagbati.