Genocidio de procesos con Expresiones Regulares
Publicado el Martes, 7 de diciembre de 2010Mi memoria RAM está dando para poco. Sabiendo que tengo ArchLinux, debería tener bastante controlado el uso de recursos de la computadora, pero últimamente no es así. ¿Será KDE? ¿Serán los drivers de la tarjeta de video? En fin...
Investigando un poco con el comando top, pude detectar un uso abusivo de memoria de un proceso denominado akonadi_ical_re. Instalé KOrganizer hace un tiempo para intentar organizar mi tiempo a través de esta aplicación (cosa que no logré hacer :P) pero acabo de desintalarlo. Supuse que por ahí venía el tema.
Los procesos estaban ahí, comiendo memoria... 24 procesos consumiendo memoria, y sin buscar más, decidí matarlos. Este es el script bruto que usé:
[root@hoth fernando] ps -ef | grep akonadi | awk '//{system(" kill -9 " $2 " ")}' |
En la primer parte, uso ps para reportar los procesos que se están ejecutando, hago un pipe a grep que filtra los resultados que contengan "akonadi". Por último desde awk filtro el segundo parámetro (al no especificar el separador, el espacio es el separador por defecto) que en ps -ef es el ID del proceso y ejecuto el comando kill -9 con system para cada proceso que encuentre.
Ya de paso me sirve de referencia para otro momento que necesite usar scripting bash + awk, que hace tiempo no tenía la oportunidad de usar. Más info al respecto en: Matando procesos con expresiones regulares.
16 comentarios en este post
Feed de comentarios-
Renombrar varios archivos desde la línea de comando | Picando Código |
12 enero. 2011 - 08:53
[…] Genocidio de procesos con expresiones regulares […]
Gustavo 7 diciembre. 2010 - 23:29
No recuerdo como son los nombres de los procesos de KDE, pero no es mas fácil jugar con el comando killall 😉
Ej: killall akonadi
Saludos
Fernando 7 diciembre. 2010 - 23:32
Sí, intenté con “killall akonadi_ical_re” pero no los encontraba…. Con un “ps -e” no encontraba los procesos de akonadi, solo con “ps -ef”, creo que con -ef se muestra más información.
En verdad debería tomarme el tiempo de configurar akonadi correctamente para que no pase esto, pero así fue más divertido 😛
Eduardo 8 diciembre. 2010 - 13:32
No me gusta mucho awk, quizás porque nunca me he metido con él. Yo lo haría así:
Si usas awk:
PD: Me encanta el título.
Eduardo.
Fernando 15 diciembre. 2010 - 20:47
¡Gracias por el aporte!
Qué bueno que te haya gustado el título, el post anterior fue “matar procesos”, este iba un poco más, así que “genocidio” 😛
Alejandro Segovia 8 diciembre. 2010 - 16:41
Fernando,
En Fedora tenés un comando “pgrep” que te matchea un string con una lista de pids que luego podés pasarle a “kill”.
En Arch no debe ser difícil hacerse un alias que implemente “pgrep”.
Varrojo.-
Fernando 18 diciembre. 2010 - 11:30
No conocía pgrep, aparentemente venía instalado en Arch, o lo instalé como dependencia de alguna otra cosa.
¡Gracias por el tip!
Adrián 9 diciembre. 2010 - 11:38
Jaja, mueran procesos!!!!!! 😀
Grover 11 diciembre. 2010 - 15:20
Pero es mucho más sencillo con la instrucción pkill:Free … Hoy es un gran Día
Fernando 18 diciembre. 2010 - 11:35
Otro comando interesante para agregar a mi lista.
¡Gracias!
elQuique 12 diciembre. 2010 - 22:36
La comisión de Derechos de Procesos y Script seguramente te llevará ante tribunal adecuado 🙂
SunlightRider 14 diciembre. 2010 - 17:21
Lo importante, ¿como quedo la memoria?
Fernando 18 diciembre. 2010 - 11:45
Igual… Aparentemente necesito otros 2GB. Un AMD64 con 2GB ya no es “moderno” para los entornos de escritorios pesados, aplicaciones web, java, y demás…
Yefb 10 enero. 2011 - 17:36
Entonces no era Korganizer el te estaba matando equipo?
Porque yo pienso usar toda la “KDE PIM”, pero no me decido porque todavia no me convence del todo Kontact.
Saludos!
Fernando 10 enero. 2011 - 23:50
Aparentemente no, no era la raíz del problema. Parece que 2GB de Ram no son suficientes para una computadora de 64 bits cuando se tienen en ejecución varios navegadores web (con muchas pestañas abiertas), Thunderbird, Kopete, cliente de microblogging, gestor de descarga (KTorrent y/o JDownloader), y ni hablar si ejecuto Eclipse o alguna herramienta del estilo para desarrollar…
De todas formas te comento que KDE Pim está siendo reescrito, y promete una versión mejorada. Habrá que esperar, ya que se atrasó su salida y no lo vamos a ver con KDE 4.6 este 26 de enero, pero sí seguramente ya con KDE 4.6.1 más adelante.
Leo Gutiérrez 17 abril. 2011 - 21:06
Hay un comando especializado para eso, pgrep:
kill -9 $(pgrep “^leafpad$”)