Como matar procesos usando Linux

Na maior parte do tempo quererás que un programa finalice cos seus propios medios ou, se é unha aplicación gráfica, usando a opción de menú axeitada ou usando a cruz na esquina.

Cada vez que se colgará un programa, nese caso necesitarás un método para matalo. Tamén pode querer matar un programa que se está executando en segundo plano que xa non necesita executar.

Esta guía proporciona un método para matar todas as versións da mesma aplicación que se están a executar no seu sistema.

Como usar o comando killall

O comando killall mata todos os procesos por nome. Isto significa que se ten tres versións do mesmo programa executando o comando killall, matarán as tres.

Por exemplo, abra un pequeno programa como un visor de imaxes. Agora abre outra copia do mesmo visor de imaxes. Para o meu exemplo escollín Xviewer que é un clon de Eye Of Gnome .

Agora abra un terminal e escriba o seguinte comando:

killall

Por exemplo, para matar todas as instancias de Xviewer, escriba o seguinte:

killall xviewer

As dúas instancias do programa que escolleu para matar agora pecharán.

Matar o proceso exacto

killall pode producir resultados estraños. Ben, aquí hai unha razón pola que. Se ten un nome de comando que ten máis de 15 caracteres, entón o comando killall só funcionará nos primeiros 15 caracteres. Se, polo tanto, tes dous programas que comparten os mesmos primeiros 15 caracteres, ambos os dous programas cancelaranse aínda que só quixese matar.

Para evitar isto, pode especificar o seguinte conmutador que só matará arquivos que coincidan co nome exacto.

killall -e

Ignorar caso ao matar programas

Para asegurarse de que o comando killall ignore o caso do nome do programa que proporciona, use o seguinte comando:

killall-eu
killall --ignore-case

Matar todos os programas no mesmo grupo

Cando execute un comando como o seguinte creará dous procesos:

ps -ef | menos

Un comando é para a parte ps -ef que enumera todos os procesos en execución no seu sistema e que a saída se conecta ao comando menos .

Ambos os dous programas pertencen ao mesmo grupo que é bash.

Para matar ambos programas á vez pode executar o seguinte comando:

killall -g

Por exemplo, para matar todos os comandos que se executan nun shell bash, execute o seguinte:

killall -g bash

Incidentalmente, para listar todos os grupos en execución, execute o seguinte comando:

ps-g

Obter confirmación antes de matar programas

Obviamente, o comando killall é un comando moi poderoso e non quere matar accidentalmente os procesos incorrectos.

Usando o seguinte cambio, preguntarás se estás seguro antes de matar cada proceso.

killall -i

Matar procesos que estiveron funcionando por unha certa cantidade de tempo

Imaxina que estivo a executar un programa e está levando moito máis tempo do que esperaba.

Pode matar o comando do seguinte xeito:

killall -o h4

O h no comando anterior supón unhas horas.

Tamén pode especificar calquera dos seguintes:

Alternativamente, se quere matar os comandos que só comezaron a executarse, pode usar o seguinte conmutador:

killall e h4

Esta vez o comando killall matará a todos os programas que estean a executar por menos de 4 horas.

Non me digas cando non se mata un proceso

De forma predeterminada se tentas matar un programa que non estás a executar recibirás o seguinte erro:

nome do programa: ningún proceso atopado

Se non queres que me digan se non se atopou o proceso, use o seguinte comando:

killall -q

Usando expresións regulares

No canto de especificar o nome dun programa ou comando pode especificar unha expresión regular para que todos os procesos que coincidan coa expresión regular sexan pechados polo comando killall.

Para usar unha expresión regular use o seguinte comando:

killall -r

Matar programas para un usuario específico

Se quere matar un programa que está a ser executado por un usuario específico pode especificar o seguinte comando:

killall -u

Se quere matar todos os procesos para un usuario en particular pode omitir o nome do programa.

Agarde a killall para terminar

De xeito predeterminado, o killall volverá de novo ao terminal cando o executa pero pode forzar a killall a esperar ata que se pechen todos os procesos especificados antes de regresalo á xanela do terminal.

Para facelo executar o seguinte comando:

killall -w

Se o programa nunca morre, entón killall seguirá vivindo.

Sinais sinais sinais

De xeito predeterminado, o comando killall envía a sinal SIGTERM aos programas para que se pechen e este é o método máis limpo para matar programas.

Non obstante, existen outros sinais que pode enviar usando o comando killall e pode listalos empregando o seguinte comando:

killall -l

A lista regresada será algo así:

Esa lista é moi longa. Para ler sobre o que significan estes sinais, execute o seguinte comando:

sinal de home 7

En xeral, debería empregar a opción SIGTERM predeterminada, pero se o programa se rexeita a morrer, pode usar SIGKILL o que obriga ao programa a pechar aínda que sexa de forma indigna.

Outras formas de matar un programa

Existen 5 xeitos de matar unha aplicación Linux como se destacou na guía relacionada.

Non obstante, para aforrarche o esforzo de facer clic na ligazón aquí hai unha sección que mostra o que son eses comandos, é por iso que pode usar eses comandos sobre killall.

O primeiro é o comando kill. O comando killall como viches é xenial para matar todas as versións do mesmo programa. O comando kill está deseñado para matar un proceso ao mesmo tempo e é, polo tanto, máis dirixido.

Para executar o comando kill necesitará coñecer a ID do proceso do proceso que quere matar. Para iso, pode usar o comando ps .

Por exemplo, para atopar unha versión en execución de Firefox pode executar o seguinte comando:

ps -ef | grep firefox

Verá unha liña de datos co comando / usr / lib / firefox / firefox ao final. Ao comezo da liña verá a súa ID de usuario eo número despois de que o ID de usuario sexa o ID de proceso.

Usando a ID do proceso pode matar Firefox executando o seguinte comando:

matar -9

Outra forma de matar un programa é usando o comando xkill. Isto generalmente úsase para matar as aplicacións gráficas mal compostas.

Para matar un programa como Firefox abre un terminal e executa o seguinte comando:

xkill

O cursor agora cambiará a unha gran cruz branca. Deslice o cursor sobre a xanela que quere matar e faga clic co botón esquerdo do rato. O programa sairá inmediatamente.

Outra forma de matar un proceso é mediante o comando top de Linux. O comando superior enumera todos os procesos en execución no seu sistema.

Todo o que tes que facer para matar un proceso é presionar a tecla "k" e ingresar o ID do proceso da aplicación que queres matar.

Anteriormente nesta sección o comando de matar e requiríalle atopar o proceso empregando o comando ps e despois matar o proceso empregando o comando kill.

Esta non é a opción máis simple por ningún medio.

Por unha banda, o comando ps devolve unha gran cantidade de información que non precisa. Todo o que quería era o ID do proceso. Pode obter o ID do proceso máis simplemente executando o seguinte comando:

pgrep firefox

O resultado do comando anterior é simplemente o ID de proceso de Firefox. Agora podes executar o comando kill como segue:

matar

(Substitúe co ID de proceso real devolto por pgrep).

En realidade, é máis doado simplemente fornecer o nome do programa a pkill do seguinte xeito:

pkill firefox

Para rematar, pode empregar unha ferramenta gráfica como a subministrada con Ubuntu chamada "Monitor do sistema". Para executar "Monitor do sistema" prema a tecla super (tecla Windows na maioría das computadoras) e escriba "sysmon" na barra de busca. Cando apareza a icona do monitor do sistema, faga clic nel.

O monitor do sistema mostra unha lista de procesos. Para finalizar un programa de forma limpa seleccióneo e prema a tecla Finalizar na parte inferior da pantalla (ou prema CTRL e E). Se isto non funciona, prema co botón dereito e escolla "Matar" ou prema CTRL e K no proceso que quere matar.