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:
- Llistem els processos (ps a)
- 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)
- 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)
- 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)
- 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.
- 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)
- 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
34 comentaris, deixa el teu
É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.
provant si això de el format funciona i sinó que algú em digui com fer-ho
Moltes gràcies.
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 🙂
Gran !!
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.
clic sobre el programa a matar
jeje Síp ... això suposant que es compti amb GUI jeje.
Així és, per això vaig dir «si el procés és d'un programa que es troba visible».
És més fàcil fer clic sobre el botó amb la «X». GNOME Shell encara té aquest botó no? :-D.
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.
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.
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
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!
Ah, i «pkill», que fa el que esteu buscant. Per exemple: «pkill kat».
Oh, interessant ... no coneixia pgrep 🙂
Gràcies pel tip 😀
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!
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.
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.
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.
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? 😀
Així és 0 /
Jajajaja, sempre et vas per la forma més complicada. 😀
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.
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?
Doncs SIP, això succeiria 🙂
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.
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
Molt ben explicat, genial el blog ho acabo de conèixer, ho apunto a favorits. Gràcies.
Doncs està bé, encara que hi ha algunes vegades en què no es poden matar ....
pkill -9
pkill -9 «nom de l'procés»
en el coment anterior li vaig posar «» però no va sortir xD
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
Gràcies companyia no t'imagines la quantitat de problemes que em acabes de resoldre amb aquesta comanda.
Salutacions!
GRÀCIES !!!!
Excel·lent post. Just el que estava buscant i no sabia com fer-ho, ha i l'explicació molt bona.
Salutacions.