Mata a un procés amb un sol comandament

Moltes vegades necessitem un terminal matar un procés. Si coneixem el nom complet de l'procés (per exemple: kate) No tenim problemes, un simple:

killall kate

Ens resol el problema ... però, què passa si no coneixem el nom exacte de l'procés?

En aquestes ocasions, hem de llistar tots els processos amb ps a com es mostra en el screenshot:


Per llavors buscar el PID de el procés, que en aquest cas busquem el PID de kate:

Per llavors fer un:

kill 3808

I ja està, aquí matem el procés.

Doncs bé ... en una sola línia podem buscar el procés (sense necessitat de saber el nom complet), esbrinar el PID d'ell, ia més matar-ho:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

Com poden veure:

  1. Llistem els processos (ps a)
  2. No sabem el nom complet o exacte de kate (eh !, que podria ser kate-editor o alguna cosa així) Per la qual cosa només filtrem per kat (grep kat)
  3. Però ens sortiran dos processos relacionats a kat si només fem servir aquest filtre, un que és el de l'procés kate, i un altre que és el procés que activem per al filtrat, els deixo un screenshot perquè s'acabi d'entendre: (Noten que hi ha 2 línies, és a dir, 2 processos)
  4. Per evitar el que s'ha explicat abans, fem un altre filtre (grep -v grep). El que farem el contrari ... si filtrem usant grep, ell només mostrarà les coincidències amb el filtre, bé amb grep -v li vam indicar que NO mostri les coincidències, sinó que mostri el que no coincideix. Els mostro el screenshot sobre com seria el resultat fins li moment: (Noten que ara només apareix el procés de kate)
  5. Bé, ja tenim aïllat el procés que desitgem matar, ara només ens queda extreure el seu PID que és el 2on número, és a dir, 4062. I el PID es troba a la 2a columna (la 1ra columna conté l'usuari amb UID 1000), De manera que usant awk podem dir que només mostri d'aquesta línia el que trobi en la 2dóna columna (awk '{print $ 2}'). La qual cosa faria que només se'ns mostri el nombre de el procés, és a dir a la terminal només apareixerà el PID.
  6. Però no volem mostrar el PID, el que volem és matar el procés amb aquest PID ... pel que això farem, vam passar el que tenim fins ara cap al comandament matar i llest (xargs kill)
  7. Què significa el xargs aquest? ... simple, en aquest cas no podem passar el PID a matar només amb canonades ( | ), Això simplement no és suficient, de manera que xargs (que permet passar valors o dades per després executar-los o matar-los) És el que ens permetrà acabar la feina.

I aquí acaba 😀

Sí ... sé que això sembla una mica complex, precisament per això he intentat explicar-ho el millor que he pogut.

Sé que possiblement a pocs els caldrà aquesta comanda, però l'objectiu d'aquest article és el mateix que el de DesdeLinux, ensenyar-alguna cosa nova cada dia, intentant sempre que perdin la por o temor a Linux ... i, personalment m'encantaria també que aprenguin a fer servir sense por la terminal 😉

En fi ... espero els hagi resultat interessant, jo segueixo aprenent com utilitzar awk que de debò és genial jeje.

Salutacions


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

34 comentaris, deixa el teu

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   ezitoc va dir

    És cert, awk m'ha estat de moltíssima utilitat i crec que aquella persona que necessiti manipular arxius de text estructurats, és molt recomanable que sàpiga utilitzar-lo.

    Tinc una pregunta nomás (que res a veure amb l'entrada: D), com (i amb quin programa) vas fer aquest efecte borrós que et permet ressaltar una porció de la captura de pantalla?

    Salutacions.

    1.    ezitoc va dir

      provant si això de el format funciona i sinó que algú em digui com fer-ho

      Moltes gràcies.

    2.    KZKG ^ Gaara va dir

      Doncs sí ... he redescobert Linux ara que sé treballar amb awk jajajaja.
      Sobre l'efecte i tal, res ... és només Gimp 😀

      Selecciono la porció que desitjo destacar, la curt amb [Ctrl] + [X] i la pego com una nova capa, després selecciono la capa inferior (que és la que desitjo opacar) i vaig a filtres- »Gaussià (o com s'escrigui jeje) i llest.
      Ara, per donar-li l'efecte foscor, simplement va crear una nova capa (fons blanc) i la situo entre aquestes dues que ja tenia, li dono color negre i en la barra de transparència (cantonada superior dreta) la moc cap a on aconsegueixi l'efecte desitjat .

      Salutacions i gràcies pel comentari 🙂

      1.    Roberto Evolucionant Santana va dir

        Gran !!

  2.   Manuel de la Font va dir

    Si el procés és d'un programa que es troba visible, res més còmode que mecanografiar xkill a la consola, clic sobre el programa a matar, i llest.

    1.    KZKG ^ Gaara va dir

      clic sobre el programa a matar
      jeje Síp ... això suposant que es compti amb GUI jeje.

      1.    Manuel de la Font va dir

        Així és, per això vaig dir «si el procés és d'un programa que es troba visible».

        1.    Windòusic va dir

          És més fàcil fer clic sobre el botó amb la «X». GNOME Shell encara té aquest botó no? :-D.

          1.    Manuel de la Font va dir

            Si el programa es troba congelat (que és la raó principal per la qual necessitaries matar el seu procés) és lògic que aquest botó no respondrà per més que ho pressions.

            Crec que GNOME Shell ho traurà aviat perquè vegin la meravella tàctil que és tancar finestres arrossegant fins a la part inferior de la pantalla com a Windows 8. No cal dir que en monitors panoràmics és un exercici fantàstic.

          2.    Windòusic va dir

            Ara ho entenc. En aquest cas prefereixo Control + Alt + Esc (en KDE).

            Estic desitjant veure els nous avenços del GNOME Shell, són una autèntica delícia.

  3.   correcte va dir

    Això fa el mateix però s'escriu menys.
    En aquest cas vaig prendre a Leafpad com a exemple per això apareix leaf al grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    Salutacions

  4.   sys va dir

    Uf! Fill meu, prova a executar «pgrep kat», que per alguna cosa està «pgrep».

    I a executar «man pgrep». I «man pidof», que en algunes ocasions et pot servir «pidof».

    I a executar «ps aux | grep [k] at », que no et tornarà com a resultat« el procés que activem per al filtrat »que comentes, de manera que t'estalvies treball.

    Salutacions!

    1.    sys va dir

      Ah, i «pkill», que fa el que esteu buscant. Per exemple: «pkill kat».

    2.    KZKG ^ Gaara va dir

      Oh, interessant ... no coneixia pgrep 🙂
      Gràcies pel tip 😀

      1.    sys va dir

        Gràcies a tu i als teus articles.

        Per cert, en https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ comenten sobre la tècnica d'usar ordres com «ps aux | grep [n] ombre_del_programa », allà ho expliquen millor que jo.

        Salutacions!

        1.    KZKG ^ Gaara va dir

          Gràcies pel link 😀
          Això és el genial que hi hagi DesdeLinux ... que no importa si ets usuari, redactor o admin, sempre tots aprenem coses noves 🙂

          Salutacions i gràcies de nou amic.

  5.   Koste va dir

    Moltes gràcies a tots, pel temps i dedicació, fa que valgui la pena visitar i llegir aquest lloc diverses vegades a el dia.

    Gràcies una altra vegada.

  6.   Mr Linux. va dir

    A KZKG ^ Gaara gairebé sempre li passa el mateix, quan es tracta d'aquesta classe de tips, hi ha una altra persona que fa el mateix amb un senzill comandament. Però el felicito sempre està contínuament aportant.

    1.    KZKG ^ Gaara va dir

      jeje sip ... jo sé fer X óssa i vinc aquí i comparteixo el mètode, però després comparteixen una forma més simple d'aconseguir el mateix jajaja, però amb això tots guanyem o no? 😀

      1.    truko22 va dir

        Així és 0 /

      2.    Manuel de la Font va dir

        Jajajaja, sempre et vas per la forma més complicada. 😀

        1.    KZKG ^ Gaara va dir

          JAJAJA sí, és que sempre he pensat: «Si sé fer-ho de la forma més difícil, llavors sabré aprendre a fer-ho de la forma simple sense problemes.»I ... viceversa no funciona igual jajaja.

  7.   Oscar va dir

    El problema seria si tenim dos processos amb un nom similar.
    Per exemple, un procés de kate, i un altre procés de ... mmm ... diguem Kater xD
    Amb aquest comando, mataríem als dos, cert?

    1.    KZKG ^ Gaara va dir

      Doncs SIP, això succeiria 🙂

  8.   truko22 va dir

    TT pobre kate. Jo ús és xkill en KDE es llança ràpid amb «ctrl + alt + esc» o també amb «ctrl + Esc» obre «Activitats de el Sistema» i realitzar-les gràficament. Ara aquest procediment mitjançant la terminal cal aprendre-ho, tot i que tinc un server casolà amb debian estable i això no es penja per a res.

  9.   Yulian va dir

    Genial! just ara que porto el curs de sistemes operatius i necessito realitzar tasques amb el terminal teu tutorial em va ser de gran ajuda! gràcies

  10.   pablo va dir

    Molt ben explicat, genial el blog ho acabo de conèixer, ho apunto a favorits. Gràcies.

  11.   Anon va dir

    Doncs està bé, encara que hi ha algunes vegades en què no es poden matar ....

  12.   Dcoy va dir

    pkill -9

    1.    Dcoy va dir

      pkill -9 «nom de l'procés»
      en el coment anterior li vaig posar «» però no va sortir xD

  13.   itobest va dir

    bona nit, tinc temps llegint els seus feed i avui em vaig decidir provar aquesta comanda ps ax | grep chrome | grep -v grep | awk '{print $ 1}' | xargs kill i em límit amb el següent error kill: can not find process «?» amb la poca experiència que tinc en bash vaig decidir realitzar-li algunes modificacions i a la fi em quedo ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs kill atès que per mostrar tots els processos de forma resumida s'usa ps -A i la segona anomalia era que em llançava el TTY «?» i em va funcionar moltes gràcies m'agrada molt el seu blog, salutacions

  14.   Michael va dir

    Gràcies companyia no t'imagines la quantitat de problemes que em acabes de resoldre amb aquesta comanda.

    Salutacions!

  15.   emalug va dir

    GRÀCIES !!!!

  16.   Arturo va dir

    Excel·lent post. Just el que estava buscant i no sabia com fer-ho, ha i l'explicació molt bona.

    Salutacions.