viernes, 16 de enero de 2015

Matar procesos de forma rápida y eficaz

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

El momento de máxima frustración de cualquier usuario es cuando la aplicación que usas se bloquea y no puedes ir ni hacia delante ni hacia atrás. En GNU/Linux existen varias formas de salir del atolladero, y aunque todas suponen cerrar el proceso en curso, sirven para que el sistema restablezca su normal funcionamiento y podamos seguir trabajando. Por supuesto, todo ello a través de la consola de comandos usando el comando kill.

Lo que hace este comando es enviar señales a los procesos abiertos que, por defecto, indican el final del proceso. Son de uso exclusivo del supersusuario por lo que, si no estamos logados como tal, habrá que antecederlo del sudo.

El modo más eficaz de matar un proceso es utilizar su PID (número de identificación), el cual podemos conseguir de varias formas. Pongamos que quiero matar el proceso correspondiente al programa de diseño 3D Blender; bien, pues usando el comando top veremos monitorizados en pantalla todos los procesos abiertos en tiempo real. Solo tenemos que localizarlo.



Vemos que su PID es 7170, de modo que a continuación usamos kill con el modificador -9:

paco@paco-pc:~/$ sudo kill -9 7170

Otra forma de localizar un PID es empleando el comando ps, que sirve para listar procesos activos:

paco@paco-pc:~/$ sudo ps -ef | grep Blender

Así, en combinación con una tubería y el comando de filtrado grep hallaríamos el PID de Blender.

También podemos matar el proceso tecleando su nombre, en este caso usando el comando killall:

paco@paco-pc:~/$ sudo killall Blender

A veces el nombre del proceso no es exactamente igual al de su aplicación relacionada. Por ejemplo, el reproductor multimedia Kaffeine es ejecutado por el proceso llamado kaffeine-xbu, pero esto no tenemos por qué saberlo. Para estos casos disponemos del comando pkill, con el que podremos matar el proceso tecleando solo parte de su nombre. Ojo, si hay procesos abiertos que compartan esa cadena de texto también se cerrarán.

paco@paco-pc:~/$ sudo pkill kaffeine

De esta forma mataríamos el proceso kaffeine-xbu.

Por último, la manera más gráfica de aniquilar un proceso es con xkill. Con este comando mataremos la aplicación que nos molesta haciendo clic sobre ella con el ratón, cuyo cursor se habrá convertido en una calavera.

paco@paco-pc:~/$ sudo xkill

En fin, con este rosario de comandos no había que estrujarse mucho la sesera para elegir el vídeo del post. Un clásico de los 90 com es este "Killing in the name" de los siempre combativos Rage Against The Machine.