En muchas oportunidades nos encontramos ante situaciones un poco deseadas con los archivos, programas o servicios que están ejecutándose en nuestro sistema y sabemos que la única forma de terminar estos procesos es eliminándolos o como se conoce normalmente en nuestro medio IT “matar” el proceso.
Bien es sabido por todos la forma cómo se elimina un proceso en entornos Windows pero muy pocas veces mencionamos los procesos relacionados con Linux, razón por la cual en este estudio abarcaremos este tema y analizaremos algunas de las herramientas que tenemos a mano para terminar dichos procesos.
Para este estudio usaremos un entorno Debian 8 para que comprendamos los comandos que serán ejecutados en este pequeño análisis.
La primer alternativa que usaremos para terminar un proceso en Linux será ejecutar el comando desde la terminal:
gnome-system-monitorCon este comando desplegaremos la ventana de administración de procesos en nuestro entorno Debian 8.
Como podemos observar contamos con tres (3) pestañas que son:
Para eliminar un proceso a través del monitor del sistema de Gnome basta con seleccionar el proceso que deseamos terminar y pulsar el botón Finalizar Proceso.
Vemos que aparece el siguiente mensaje:
Simplemente damos clic en Finalizar Proceso y de esta manera hemos “matado” el proceso usando el monitor.
Este comando que usamos en este estudio (gnome-system-monitor) es aplicado para entornos Gnome, si usamos otros entornos podemos buscar las siguientes herramientas:
- Entornos KDE: Usamos la utilidad Monitor del sistema o System Monitor.
- Entornos XFCE: Podemos usar la utilidad Administrador de Tareas o Task Manager (En este entorno basta con dar clic derecho en el proceso y elegir Detener, Terminar o Matar)
A través de la línea de comandos tenemos algunas alternativas muy interesantes las cuales vamos a analizar a continuación.
El primer comando que veremos será el comando PS (Process System) el cual nos despliega los procesos que están siendo ejecutados por el usuario actual. Si usamos el comando ps sin ningún parámetro veremos lo siguiente relacionado solamente al usuario actual:
Notemos que se incluye un PID o identificador del proceso el cual nos será útil para la respectiva tarea de eliminación del proceso.
Algunos de los parámetros que podemos implementar usando ps son los siguientes:
- -aux: Despliega los procesos de todos los usuarios añadiendo más información acerca de los mismos.
- -a: Despliega los procesos de todos los usuarios.
- -u: Despliega información del proceso de manera detallada como por ejemplo el uso de memoria, de cpu, etc.
- -x: Despliega los procesos de todas las terminales y usuarios.
- -l: Muestra información que incluye el UID y el valor “nice“.
- –forest: Despliega los procesos en un esquema de árbol.
El siguiente comando que podemos usar, el cual está relacionado con ps es el comando kill con el cual mataremos el proceso, la sintaxis que debemos implementar para kill es la siguiente:
Kill -9 ID_Proceso(El -9 se usado para incrementar las posibilidades de eliminación satisfactoria), por ejemplo, en nuestro caso podemos implementar el comando kill -9. Por defecto kill usa la señal -15 la cual es SIGTERM (Terminar proceso), nosotros ingresamos -9 la cual es SIGKILL (Matar proceso).
Si deseamos observar todas las señales podemos usar el comando:
kill -lEl cual listará todas las señales asociadas con el comando kill.
Finalmente podemos usare el comando killall para terminar procesos por su nombre, por ejemplo podemos usar:
killall terminalPara terminar el proceso de la terminal. En caso de que no tengamos conocimiento del nombre del proceso que deseamos terminar, podemos usar el comando xkill el cual una vez lo ejecutemos en la terminal veremos que se despliega una X con la cual debemos dar clic en la ventana que deseamos cerrar, por ejemplo en este caso daremos clic con la X en la ventana de Iceweasel.
Una vez demos clic la ventana se cerrará veremos en nuestra terminal que se confirma que el proceso ha sido eliminado.
Otro de los comandos que podemos usar para validar que procesos están corriendo y consumiendo recursos en nuestro sistema Debian es el comando TOP, a través de top podemos listar todos los procesos y ver que consumo están obteniendo de nuestra máquina, veremos detalles como el PID, el usuario, el tiempo de actividad, el comando etc.
A continuación veremos algunos procesos en Linux que nos permitirán obtener información de nuestro sistema para determinar espacio libre en memoria, en disco, en cpu, y si vemos que están escasos podremos ejecutar cualquiera de los anteriores para liberar espacio y obtener el mejor rendimiento del sistema.
El primer comando que revisaremos será el comando FREE:
freeEl cual nos brinda información detallada de la memoria RAM, tal como su capacidad total, espacio libre, etc.
El comando LSCPU nos permite ver de forma estructurada información específica acerca de la CPU de la máquina en actividad tal como cantidad de núcleos, marca, velocidad, cache, soporte de Hyper-V, etc. Al ejecutar este comando veremos lo siguiente:
De la misma manera podremos ejecutar algunos de los siguientes comandos:
- Lsusb: Nos permite ver todos los puertos USB y los detalles sobre los dispositivos que están conectados en ellos.
- Df: Con el comando df podremos ver las particiones del sistema.
- Uname: Con el comando uname podremos ver la información del sistema y podemos implementar parámetros como -p (ver información del procesador), -r (ver información del kernel).
- Lsmod: Usando lsmod podremos ver el estado de los módulos del kernel.
- Lspci: Usando lspci nos muestra información relacionada con los puertos PCI del sistema.
- Hwinfo: Con este comando podremos ver información detallada acerca del hardware que tiene nuestro sistema, por defecto hwinfo no está instalado en Debian ni en ninguna distribución de Linux, para ello lo instalaremos usando el comando:
sudo apt-get install hwinfo
De esta manera hemos podido analizar algunos de los comandos más importantes que nos permitirán “matar” procesos y ver información acerca de nuestros sistemas Linux.