Mata un proceso cun só comando

Moitas veces necesitamos matar un proceso a través dun terminal. Se coñecemos o nome completo do proceso (por exemplo: kate) non temos problemas, un sinxelo:

killall kate

Resolve o problema para nós ... pero e se non sabemos o nome exacto do proceso?

Nesas ocasións, temos que enumerar todos os procesos con ps a como se mostra na seguinte captura de pantalla:


Despois busque o PID do proceso, que neste caso buscamos o PID kate:

Para entón faga un:

kill 3808

E voilá, alí matamos o proceso.

Ben ... nunha soa liña podemos buscar o proceso (sen necesidade de saber o seu nome completo), descubrir o seu PID e tamén matalo:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

Como podes ver:

  1. Enumeramos os procesos (ps a)
  2. Non sabemos o nome completo nin exacto de kate (oes, podería ser editor de kate ou algo así) polo que só filtramos por kat (grep kat)
  3. Pero obteremos dous procesos relacionados con kat se só usamos este filtro, un que é o proceso de Kate e outro que é o proceso que activamos para filtrar, déixovos unha captura de pantalla para que podades acabar de comprender: (Teña en conta que hai 2 liñas, é dicir, 2 procesos)
  4. Para evitar o explicado antes, facemos outro filtro (grep -v grep). O que faremos ao contrario ... se filtramos usando grep, só amosará as coincidencias co filtro, ben con grep -v Instruímoslle que NON mostre os partidos, senón que mostre o que non coincide. Ensínovos a captura de pantalla de como sería o resultado ata agora: (Teña en conta que agora só aparece o proceso de Kate)
  5. Ben, xa temos o proceso que queremos matar illado, agora só temos que extraer o seu PID, que é o segundo número, é dicir, 4062. E o PID está na segunda columna (A primeira columna contén un usuario con UID 1), polo que usando awk podemos dicir que só mostra a partir desa liña o que atopa na segunda columna (awk '{print $ 2}'). O que só nos amosaría o número do proceso, é dicir, só o PID aparecerá no terminal.
  6. Pero non queremos mostrar o PID, o que queremos é matar o proceso con ese PID ... así que faremos iso, pasamos o que temos ata agora ao comando matar e listo (xargs matan)
  7. Que significa iso xargs? ... sinxelo, neste caso non podemos pasar o PID para matar só con tubos ( | ), isto simplemente non é suficiente, polo que xargs (que permite pasar valores ou datos para logo executalos ou matalos) é o que nos permitirá rematar o traballo.

E aquí remata 😀

Si ... Sei que isto parece un pouco complexo, precisamente por iso tenteino explicar o mellor que puiden.

Sei que posiblemente poucos precisen deste comando, pero o obxectivo deste artigo é o mesmo que desde DesdeLinux, ensinarlles algo novo todos os días, sempre intentando facerlles perder o medo ou o medo a Linux ... e, persoalmente, , Tamén me encantaría que aprendesen a usar o terminal sen medo 😉

En fin ... Espero que vos resultase interesante, sigo aprendendo a usalo vaia que é realmente xenial jeje.

lembranzas


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

34 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   Ezitoc. dixo

    É certo, awk foime moi útil e creo que se recomenda a calquera que precise manipular ficheiros de texto estruturado para saber como usalo.

    Só teño unha pregunta (que non ten nada que ver coa entrada: D), como (e con que programa) fixeches ese efecto de desenfoque que che permite resaltar unha parte da captura de pantalla?

    Saúdos.

    1.    Ezitoc. dixo

      Probando se isto do formato funciona e se non alguén me di como facelo

      Moitas grazas.

    2.    KZKG ^ Gaara dixo

      Pois si ... redescubrín Linux agora que sei traballar con awk HAHAHAHA.
      Sobre o efecto e tal, nada ... só é Gimp 😀

      Selecciono a porción que quero resaltar, córtea con [Ctrl] + [X] e pégoa como unha nova capa, despois selecciono a capa inferior (que é a que quero opaca) e vou a Filtros- »Gauss (ou o que escribas jeje) e voila.
      Agora, para darlle o efecto escuro, simplemente creo unha nova capa (fondo branco) e colócoa entre estas dúas que xa tiña, doulle cor negra e na barra de transparencia (esquina superior dereita) móvea a onde Consigo o efecto desexado.

      Un saúdo e grazas polo comentario 🙂

      1.    Roberto Evolutivo Santana dixo

        Grande !!

  2.   Manual da Fonte dixo

    Se o proceso é dun programa visible, nada máis cómodo que escribir xkill na consola, fai clic no programa para matar, e xa está.

    1.    KZKG ^ Gaara dixo

      fai clic no programa para matar
      jeje si ... iso supoñendo que teñas unha GUI jeje.

      1.    Manual da Fonte dixo

        É certo, por iso dixen "se o proceso é dun programa visible".

        1.    Windousiano dixo

          É máis doado facer clic no botón co "X". GNOME Shell aínda ten ese botón non? :-D.

          1.    Manual da Fonte dixo

            Se o programa está conxelado (que é a principal razón pola que tería que acabar co seu proceso), é lóxico que este botón non responda por máis que o prema.

            Creo que GNOME Shell a eliminará en breve para que poida ver a marabilla táctil de pechar xanelas arrastrándoas ata a parte inferior da pantalla como en Windows 8. Nin que dicir ten que nos monitores de pantalla ancha é un exercicio fantástico.

          2.    Windousiano dixo

            Entendo agora. Nese caso prefiro Control + Alt + Esc (en KDE).

            Non podo esperar para ver as novas previsualizacións de GNOME Shell, son un auténtico regalo.

  3.   axeitado dixo

    Isto fai o mesmo pero escríbese menos.
    Neste caso tomei a folla de follas como exemplo, por iso a folla aparece en grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    lembranzas

  4.   sys dixo

    ¡Phew! Meu fillo, proba a executar "pgrep kat", que é "pgrep" para algo.

    E para executar "man pgrep". E "home pidof", que ás veces "pidof" pode axudarche.

    E executar «ps aux | grep [k] en ", que non devolverá como resultado" o proceso que activamos para o filtrado "que comenta, aforrándolle así traballo.

    Saúdos!

    1.    sys dixo

      Ah, e "pkill", que fai o que buscas. Por exemplo: "pkill kat".

    2.    KZKG ^ Gaara dixo

      Ah, interesante ... non sabía pgrep 🙂
      Grazas polo consello 😀

      1.    sys dixo

        Grazas a ti e aos teus artigos.

        Por certo, en https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ comente a técnica do uso de comandos como «ps aux | grep [n] nome_programa ", explicano mellor que eu alí.

        Saúdos!

        1.    KZKG ^ Gaara dixo

          Grazas pola ligazón 😀
          Iso é o xenial que existe desde DesdeLinux ... non importa se es usuario, editor ou administrador, sempre aprendemos cousas novas 🙂

          Un saúdo e grazas de novo amigo.

  5.   custo dixo

    Moitas grazas a todos polo voso tempo e dedicación, paga a pena visitar e ler este sitio varias veces ao día.

    Grazas de novo.

  6.   Señor Linux. dixo

    KZKG ^ Gaara é case sempre o mesmo, cando se trata deste tipo de consellos, hai outra persoa que fai o mesmo cun simple comando. Pero felicítoo, sempre contribúe continuamente.

    1.    KZKG ^ Gaara dixo

      hehe yep ... sei como facer X osa e veño aquí e comparto o método, pero logo comparten un xeito máis sinxelo de conseguir o mesmo jajaja, pero con isto gañamos todos, non? 😀

      1.    truko22 dixo

        É certo 0 /

      2.    Manual da Fonte dixo

        Jajajaja, sempre vas polo camiño máis complicado. 😀

        1.    KZKG ^ Gaara dixo

          HAHAHA si, sempre pensei: «Se sei facelo do xeito máis difícil, saberei facelo do xeito sinxelo sen problemas.»E ... viceversa non funciona igual jajaja.

  7.   oscar dixo

    O problema sería se temos dous procesos cun nome similar.
    Por exemplo, un proceso de kate e outro proceso de ... mmm ... digamos kater xD
    Con tal comando, matariamos aos dous, non?

    1.    KZKG ^ Gaara dixo

      Ben, si, iso pasaría 🙂

  8.   truko22 dixo

    TT pobre Kate. Eu uso is xkill en KDE, lánzase rapidamente con "ctrl + alt + esc" ou tamén con "ctrl + Esc" abre "Actividades do sistema" e faino graficamente. Agora hai que aprender este procedemento a través do terminal, aínda que teño un servidor doméstico con debian estable e iso non falla en absoluto.

  9.   Yulian dixo

    Estupendo! agora mesmo que estou tomando o curso de sistemas operativos e necesito realizar tarefas co terminal, o teu tutorial foi de gran axuda. grazas

  10.   pablo dixo

    Moi ben explicado, xenial o blogue que acabo de coñecer, apúntoo aos favoritos. Grazas.

  11.   Sen demora dixo

    Ben, está ben, aínda que hai ocasións nas que non se poden matar ...

  12.   Doy dixo

    pkill -9

    1.    Doy dixo

      pkill -9 "nome do proceso"
      no comentario anterior puxen «» pero non saíu xD

  13.   mellor dixo

    boas noites, teño tempo para ler o teu feed e hoxe decidín probar este comando ps ax | grep cromo | grep -v grep | awk '{print $ 1}' | xargs kill e atopo o seguinte erro de kill: non atopo o proceso "?" coa pouca experiencia que teño en bash decidín facer algunhas modificacións e ao final quédome con ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs kill dado que ps -A úsase para amosar todos os procesos de forma resumida e a segunda anomalía foi que lanzou o TTY «?» e funcionou para min moitas grazas. Gústame moito o teu blog, saúdos

  14.   Michael dixo

    Grazas compa, non podes imaxinar a cantidade de problemas que acabas de resolver por min con este comando.

    Saúdos!

  15.   correo electrónico dixo

    GRAZAS !!!!

  16.   Arturo dixo

    Excelente post. Só o que estaba a buscar e non sabía como facelo, e a explicación foi moi boa.

    Saúdos.