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:
- Enumeramos os procesos (ps a)
- 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)
- 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)
- 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)
- 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.
- 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)
- 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
34 comentarios, deixa os teus
É 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.
Probando se isto do formato funciona e se non alguén me di como facelo
Moitas grazas.
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 🙂
Grande !!
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á.
fai clic no programa para matar
jeje si ... iso supoñendo que teñas unha GUI jeje.
É certo, por iso dixen "se o proceso é dun programa visible".
É máis doado facer clic no botón co "X". GNOME Shell aínda ten ese botón non? :-D.
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.
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.
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
¡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!
Ah, e "pkill", que fai o que buscas. Por exemplo: "pkill kat".
Ah, interesante ... non sabía pgrep 🙂
Grazas polo consello 😀
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!
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.
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.
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.
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? 😀
É certo 0 /
Jajajaja, sempre vas polo camiño máis complicado. 😀
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.
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?
Ben, si, iso pasaría 🙂
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.
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
Moi ben explicado, xenial o blogue que acabo de coñecer, apúntoo aos favoritos. Grazas.
Ben, está ben, aínda que hai ocasións nas que non se poden matar ...
pkill -9
pkill -9 "nome do proceso"
no comentario anterior puxen «» pero non saíu xD
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
Grazas compa, non podes imaxinar a cantidade de problemas que acabas de resolver por min con este comando.
Saúdos!
GRAZAS !!!!
Excelente post. Só o que estaba a buscar e non sabía como facelo, e a explicación foi moi boa.
Saúdos.