Si utilizamos Windows a diario seguro que más de una vez al día solemos abrir el Administrador de tareas con Control + Shift + Esc. Desde allí vamos a poder ver todos los procesos que tenemos abiertos en el sistema operativo, así como el uso de RAM y CPU de todo el sistema. Sin embargo, si alguna vez hemos probado otro sistema operativo, como Linux, habremos visto que la cosa cambia, y es que aquí no tenemos un administrador de tareas como tal. Aunque esto no significa que no podamos verlo en este sistema operativo.
Linux está pensado para que los usuarios más avanzados puedan tener control absoluto sobre el equipo. Eso sí, tendrán que hacerlo desde terminal, en modo texto, usando para ello los comandos adecuados. Por supuesto, Linux nos permite ver y controlar los procesos que se ejecutan en el sistema operativo, así como ver el uso general de RAM y CPU.
Hay varias formas de ver los procesos y servicios en Linux, y varias herramientas que nos ayudan a tener más o menos control sobre los recursos del sistema. A continuación, os vamos a enseñar las mejores formas para tener controlados los procesos, la RAM y la CPU de nuestra distro Linux preferida.
En un principio debemos tener en consideración que por regla general las distribuciones de Linux consumen una menor cantidad de recursos que Windows. Precisamente por esta razón multitud de usuarios en todo el mundo echan mano de alguna distribución de estas características con el fin de dar una segunda vida a sus ordenadores un tanto anticuados. Si tenemos eso en cuenta, resulta evidente que en muchos casos el funcionamiento del sistema operativo de código abierto estará un tanto ajustado en base al hardware disponible. De ahí que estos usuarios que estén utilizando equipos anticuados con Linux, necesiten conocer en todo momento y de primera mano el uso de CPU y memoria RAM que se está haciendo en cada instante.
Programas para ver los procesos en Linux
A continuación, os vamos a hablar de los que, desde nuestro punto de vista, son los mejores programas que podemos instalar para tener una lista detallada de todos los procesos que se están ejecutando en nuestro sistema Linux. Todos ellos, por supuesto, son totalmente gratuitos, de código abierto, y funcionan en cualquier distro.
TOP
Igual que el Administrador de tareas viene incluido en Windows de serie, el comando TOP es el equivalente a este. TOP es una herramienta que forma parte del kernel Linux y nos ayuda a conocer los procesos de ejecución del sistema, su estado y el uso general de los recursos del ordenador.
Para usar esta herramienta no debemos instalar nada. Lo único que tendremos que hacer es abrir un terminal o un TTY y ejecutar en él:
top
Toda la información que aparece se actualiza cada 3 segundos, por lo que más o menos podremos saber en todo momento el uso de recursos del PC.
Esta aplicación es muy completa y nos permite ver toda la información del PC, el hardware y los procesos. Sin embargo, no es precisamente intuitiva. Por ello, la mayoría de los usuarios suele preferir usar htop para esta misma tarea.
HTOP
HTOP es una versión mejorada de TOP pero mucho más completa, cuidada gráficamente para ser más intuitiva y repleta de funciones y características para controlar los procesos (como la posibilidad de cerrarlos). Si hubiera que hablar de una alternativa completa al Administrador de Tareas de Windows, HTOP sería la opción ideal.
Esta herramienta también se debe utilizar desde un terminal. Además, no viene por defecto instalado en las distros, por lo que para usarlo tendremos que instalarlo manualmente en nuestro ordenador. Para ello, simplemente ejecutamos el siguiente comando en el terminal:
sudo apt install htop
Y una vez instalado, lo ejecutamos escribiendo en cualquier terminal o TTY:
htop
Como podemos ver, aunque guarda muchas similitudes con TOP, en realidad estamos ante una aplicación totalmente diferente. Htop nos permite ver en la parte superior el uso de la CPU, concretamente de cada uno de los cores del procesador, además del uso de la memoria, tanto física como SWAP, que estamos haciendo. Todo ello con unas gráficas de colores muy sencillas de entender que nos permiten hacernos a la idea del gasto de recursos de nuestro PC a simple vista.
Debajo de esta información vamos a poder ver una lista con todos los procesos del ordenador. Cada proceso tiene reflejado la CPU y la RAM que está consumiendo. También podemos ver el tiempo que lleva en ejecución, su prioridad y mucho más.
Además, muy interesante, en la parte inferior podemos encontrar una serie de opciones a las que podemos acceder con las teclas F de nuestro teclado. Con estas vamos a poder, por ejemplo, buscar o filtrar procesos para saber los que más consumen o todos los procesos de una aplicación en concreto. Además, la tecla F9 (una gran aliada) nos va a permitir matar cualquier proceso que esté en ejecución. Si algo se ha bloqueado, con esta tecla podemos finalizarlo a la fuerza.
Glances
Este monitor de recursos para Linux se caracteriza por mostrar mucha más información de un solo vistazo. Glances nos permite ver en un solo lugar todo lo relacionado con el uso del hardware de nuestro PC y todos los procesos y servicios en ejecución sin tener que movernos por distintas pestañas ni menús. Es muy ligero e intuitivo, y funciona muy bien incluso por SSH, e incluso por web. También nos permite incluso controlar el uso de red.
Sin embargo, algunos usuarios aseguran que no es estable, y que al estar basado en Python puede dar problemas de rendimiento. Para instalar Glances, en primer lugar, debemos instalar el administrador de paquetes PyPi través del siguiente comando:
sudo apt-get install python-pip build-essential python-dev
A continuación, realizaremos la instalación utilizando este comando
sudo pip install glances
Conky
Conky es mucho más que un monitor de recursos y procesos para Linux. Mientras que las alternativas anteriores estaban basadas en terminal, Conky es más bien un conjunto de widgets para personalizar el escritorio que nos van a permitir tener a la vista siempre el uso de CPU real del PC, y mucha más información.
Aunque tiene una curva de dificultad bastante elevada, el nivel de personalización que nos ofrece no tiene igual. Podemos añadir una gran cantidad de sensores y complementos, todo lo que necesitamos para dar a nuestro escritorio de Linux un aspecto único. Eso sí, debemos tener en cuenta que todo lo gráfico, al final, consume recursos, lo que puede influir en el rendimiento del sistema.
Para instdalar Conky en nuestro equipo, desde Terminal, debemos introducir el siguiente comando:
sudo apt install conky-all
Bashtop
Bashtop es una aplicación muy sencilla de utilizar gracias al sistema de menús. Aunque la interfaz no es la mejor de todas, si la comparamos con Windows, sin embargo, para ser Linux esta está muy bien diseñada y conocer cualquier aspecto del sistema es muy rápido y sencillo. Esta aplicación nos permite mostrar las estadísticas detalladas de todos los procesos del equipo. Además, nos permite añadir filtros para reducir el número de procesos que se muestran.
La interfaz de usuario nos permite modificar las opciones de configuración para que únicamente muestra la información más relevante, incluye un gráfico donde se muestra el uso de la red, además de las velocidades de lectura y escritura de las unidades de almacenamiento.
Nos permite enviar los comandos SIGTERM, SIGKILL y SIGINT a procesos determinados para cerrarlos o mantenerlos, nos informa a través de un mensaje cada vez que se lanza una nueva versión. El uso y descarga de esta aplicación es totalmente gratuita. La podemos descargar a través del siguiente enlace a la página de GitHub.
Monitor de sistema
GNOME, el escritorio que viene incluido de serie en muchas distros populares, como Ubuntu, tiene su propio administrador de tareas, similar al de Windows, que podemos usar directamente desde la interfaz gráfica del sistema. Este administrador se llama «Monitor de sistema», y podemos encontrarlo, sin instalar nada más, en el lanzador de aplicaciones de este escritorio.
Gracias a él vamos a poder ver todos los procesos abiertos en Linux, así como listar los servicios que están en ejecución para hacernos una idea de todo lo que está funcionando en nuestro PC. Cada uno de los elementos que aparecen en la lista tendrán sus correspondientes valores en función del uso de la CPU, el gasto de memoria RAM, o el uso del disco duro que estén generando. También podremos ver su ID (útil para finalizarlos con el comando kill), el usuario al que pertenece dicho proceso, y la prioridad de ejecución.
Si hacemos clic con el botón derecho sobre cualquiera de estos procesos vamos a poder obtener más información sobre él, o, lo más importante, detener, finalizar o matar el proceso en cuestión. Así, si un proceso está bloqueando nuestro PC, y somos de los que usamos interfaz gráfica, podremos matarlo y reiniciarlo directamente desde aquí.
Además de poder ver todos los procesos y servicios de Linux, también podremos ver el rendimiento del PC en tiempo real desde la pestaña «Recursos», y controlar el espacio libre y ocupado del PC desde la pestaña «Sistema de archivos».
Comandos para ver el uso de CPU y RAM en Linux
Las herramientas anteriores sin duda son imprescindibles para cualquier usuario de Linux. Pero también existen otras alternativas que nos permiten tener controlados los recursos de nuestro ordenador cuando utilizamos un sistema Linux.
Una de estas alternativas es «free«. Este comando también forma parte del kernel Linux, por lo que no tendremos que instalarlo para poder usarlo. Para lanzarlo, simplemente ejecutaremos en el terminal «free -m» y podremos ver al momento la información sobre la RAM, tanto la total como la usada, la libre y la parte de memoria reservada para otros recursos. También podremos ver la información sobre la swap.
Otro comando similar a top es PS. Este nos permitirá ver una lista con todos los procesos que se están ejecutando en nuestro ordenador, con su consumo de recursos, su ID y demás información.
Para ello, simplemente ejecutaremos «ps aux» en un terminal y podremos ver la siguiente lista.
Si lo que queremos es guardar la información del consumo de recursos en un fichero para analizarla más tarde sin las prisas del «tiempo real», entonces vamos a recurrir a otro programa muy interesante que nos va a permitir hacer esto, y mucho más: atop. Este programa se encarga de generar un fichero con todos los procesos y servicios que se ejecutan en el PC, con los datos de consumo de cada uno, para poder abrirlo más adelante. Para usarlo, lo primero que haremos será ejecutar el siguiente comando (cambiando «filename» por el nombre del fichero que queramos guardar):
atop -w filename
Cuando queramos abrir el archivo para analizarlo al detalle, lo que haremos será cambiar el parámetro «-w» del comando anterior por «-r» para indicarle a atop que lo que queremos es abrir el archivo.
Y si lo que queremos es algo con una interfaz mucho más clara e intuitiva, una gran alternativa a todo lo anterior es Monit. Este programa es una solución basada en web, de código abierto, que se ejecuta en el ordenador y que nos va a permitir, tanto desde el PC principal como desde cualquier otro ordenador conectado a la red, monitorizar los recursos del ordenador en tiempo real, teniendo control sobre demonios, archivos, directorios, sistemas de archivos y mucho más.
Filtrar procesos en Linux
Si los administradores de tareas que acabamos de ver nos parecen muy complicados, hay otras formas de listar y filtrar procesos en Linux como auténticos administradores de sistemas. Para ello existe un comando que nos permite ver todos los procesos activos en el sistema:
ps
Para poder ver todos los procesos activos, de todos los usuarios, lo que debemos hacer es ejecutar el anterior comando con el parámetro «aux» de la siguiente manera:
ps aux
Ahora sí que tenemos una gran cantidad de resultados en pantalla. De esta forma, para encontrar el que nos interesa, tendremos que hacer un «grep». Este comando lo podemos ejecutar fácilmente se la siguiente manera:
ps aux | grep nombre
Debemos cambiar «nombre» por el nombre del proceso que estamos intentando localizar, ya sea «Chrome», «apache», «Firefox», etc. Automáticamente nos aparecen todos los procesos que coincidan con el parámetro que estemos buscando. De esta forma, por ejemplo, podremos conocer su PID para finalizarlo con «kill», o controlar el gasto de memoria y CPU que hacen algunos servicios.
PC, además, permite usarse con otros parámetros en función de lo que queramos hacer con este comando. Algunos de los más conocidos y utilizados son:
- a: lista todos los procesos que están corriendo para un usuario.
- -A, -e: lista todos los procesos del sistema.
- -a: lista todos los procesos, excepto los procesos raíz.
- -d: enumera todos los procesos, salvo los líderes de la sesión.
- -N: lista todos los procesos excepto los que cumplan una condición especificada por el usuario.
- f: muestra la jerarquía como arte ASCII.
- T: enumera todos los procesos vinculados a este terminal.
- -j: muestra la salida en el formato de los trabajos.
- r: lista solo los procesos que están en ejecución.
- u: amplia el resultado para obtener más información, como el uso de CPU o RAM.
- x: incluye procesos sin TTY.
Los datos que nos devuelve este proceso cuando lo ejecutamos son los siguientes:
- PID: el número de identificador del propio proceso.
- TTY: terminal sobre el que se está ejecutando el proceso.
- TIME: el tiempo total de CPU que ha utilizado.
- CMD: el nombre del comando que inició el proceso.
- USER: el nombre del usuario que ejecuta el proceso.
- %CPU: el porcentaje de CPU que utiliza.
- %MEM: el porcentaje de memoria que utiliza.
- VSZ: uso de memoria virtual.
- STAT: el estado actual del proceso.
- START: el momento en el que se inició el proceso.
Detener procesos en Linux con el comando xKill
Al igual que sucede en el sistema operativo de Microsoft, en determinadas ocasiones nos podemos encontrar con algunos procesos en Linux que no podemos cerrar o borrar por los métodos convencionales. Por regla general en Windows utilizamos el administrador de tareas para finalizar aquellos procesos pertenecientes a ciertos programas que no se cierran de la manera habitual. Así acabamos con aplicaciones que por ejemplo están bloqueadas y que no permiten su cerrado desde el menú contextual, o a través del botón X.
Algo similar nos puede suceder en los sistemas operativos Linux de código abierto, ya que se puede dar el caso de que nos encontremos ante un programa que no podemos cerrar o finalizar como lo hacemos siempre. Por tanto, uno de los comandos más útiles que podemos utilizar para cerrar y finalizar estos procesos que se han quedado bloqueados es xKill. En este caso nos encontramos con una herramienta que de forma predeterminada encontramos en la mayoría de las distribuciones Linux.
En todo caso, en el supuesto de que no sea así, también tenemos la posibilidad de instalarla a través del Terminal del sistema operativo en algunas de estas distros que no cuentan con la funcionalidad. Esto es algo que logramos a través del siguiente comando:
[sudo]apt install xorg-xkill[/sudo]
En resumidas cuentas lo que logramos al ejecutar este comando que os comentamos, xKill, es cerrar cualquier proceso del escritorio que se haya quedado bloqueado. La estructura que podemos usar para todo ello es la que os comentamos a continuación:
xkill
A modo de curiosidad os diremos que el puntero del ratón en ese momento se mostrará con forma de cruz y ya podremos cerrar el proceso en cuestión con el botón principal del ratón.
Ver los procesos en modo árbol
Otro método muy efectivo a la hora de visualizar en pantalla todos los procesos abiertos en nuestro sistema Linux, es a través del comando llamado pstree. Mediante el uso del mismo en el terminal del sistema operativo veremos esa información referente a los procesos abiertos pero representada en forma de árbol. De este modo tendremos la oportunidad de identificar de un modo más visual aquellos procesos que están consumiendo más o menos recursos del equipo.
A continuación, ya tendremos la posibilidad de poner las soluciones pertinentes para liberar CPU o memoria RAM. Una de las principales ventajas que nos propone este comando es que los diferentes procesos en ejecución se van ramificando en subprocesos e hilos.
Esto nos permitirá identificar de una manera más rápida los elementos que más recursos consumen. Quizá de este modo nos resulte más sencillo solucionar los problemas de los que os hablamos en estas líneas cuando trabajamos con nuestro equipo basado en Linux.
Preguntas frecuentes
Ya hemos visto cuáles son los principales programas, y comandos, para poder controlar los procesos que se abren en nuestro ordenador. Ahora, si tienes más dudas o quieres saber más sobre el rendimiento y el uso de recursos de Linux, te voy a intentar responder a estas dudas.
¿Debemos preocuparnos por tener muchos procesos?
Lo normal es que pensamos que cuantos menos procesos tengamos cargados en el sistema, mucho mejor. Sin embargo, cuando recurrimos a alguno de los programas que acabamos de ver, y vemos la gran cantidad de procesos que hay abiertos, nos quedamos pálidos. ¿Por qué Linux tiene tantos procesos?
No debemos asustarnos. Aunque haya muchos procesos abiertos en el administrador de tareas, muchos de ellos serán procesos «zombie», es decir, que estarán suspendidos y no funcionando. Lo único que harán es ocupar un poco de memoria y estar en reposo hasta que sean necesarios. No debemos cerrar procesos a lo loco, ya que lo único que conseguiremos es que nuestro Linux funcione mal. Esto es algo con lo que debemos tener un especial cuidado, ya que algunos se dedican a cerrar estos procesos sin conocimiento.
En Windows, a través del administrador de tareas, también podemos encontrar un gran número de procesos abiertos en segundo plano. Estos procesos, están abierto para cuando sean necesarios ya que algunos dependen de aplicaciones que se ejecutan en primer plano, por lo que cerrar esos procesos siempre será un error que puede probar inestabilidad en el sistema y que finalmente se cuelgue el equipo. Lo mismo sucede en macOS. Lo que está claro es que todos los procesos que se ejecutan en segundo plano están ahí porque son necesarios para el equipo, por lo que cuanto más alejamos nos encontremos de ellos, mejor.
Pero claro, mientras que muchas veces no sucederá nada, podemos vernos ante el problema de que el sistema operativo como tal ya no funciona tal y como era de esperar. Llegado el caso de que, por error, hayamos terminado con algún elemento de este tipo que afecte al sistema, lo mejor que podemos hacer es reiniciar el equipo por completo. Esto debería solucionar los problemas derivados de nuestro error, pero al mismo tiempo podríamos perder los documentos que tuviésemos abiertos en alguna aplicación si esta se ha colgado antes de permitir guardar el documento o si simplemente, no nos hemos acordado de guardarlo.
Linux sabe perfectamente cómo gestionar los procesos. Para lo único que debemos usar estos administradores de tareas es para tener controlado el hardware y, acaso, finalizar algún proceso que se haya quedado bloqueado. Pero nada más.
Cómo reducir el número de procesos
Aunque Linux no tiene los mismos problemas que Windows con los procesos, ya que todos los que no se necesitan están en modo «zombie», siempre es mejor intentar tener los menos procesos posibles cargados en memoria, aunque estén inactivos, para evitar un uso innecesario de RAM, y otros posibles problemas.
Controlar los procesos o servicios en Linux es una tarea de lo más complicada, no apta para usuarios sin experiencia. Esto se debe a que la mayoría de ellos están incluidos, o bien dentro del propio arranque del sistema, o en el núcleo. Por lo tanto, no se recomienda modificarlo si no sabemos muy bien lo que estamos haciendo. Modificar estos elementos en Linux sin saber son sinónimo de Kernel Panic, error crítico en el sistema y, probablemente, tener que reinstalarlo todo de nuevo.
La mejor forma de optimizar el funcionamiento de Linux, y eliminar todos esos procesos y todas esas dependencias es, directamente, eliminar los programas que no necesitemos. Por ejemplo, si nunca vamos a usar el servidor FTP, debemos eliminarlo del sistema para acabar con su proceso. Y lo mismo con todo tipo de servicios que tengamos instalados, habilitados y no usemos. No ganaremos mucho, pero si somos de los que nos gusta tenerlo todo controlado y optimizado, seguro que lo agradecemos.
Linux va lento y consume mucha RAM o CPU
El principal uso de estos administradores de tareas de Linux es poder controlar las aplicaciones que se ejecutan en nuestro PC. Gracias a ellos podremos tener controlado el uso de recursos (y los recursos libres) de nuestro ordenador para comprobar que todo va en orden.
Si nuestro Linux empieza a ir lento, lo más seguro es que un proceso esté consumiendo más memoria RAM de la cuenta, o que algo esté usando demasiada CPU. En ese caso, podemos utilizar cualquiera de las herramientas que acabamos de ver para localizar el proceso que está consumiendo más recursos en nuestro PC para acabar con él.
Si usamos HTOP ya os hemos explicado cómo matar procesos en Linux. Si no, podemos utilizar otros comandos para esta tarea. Por ejemplo, el comando killall seguido del nombre del proceso nos permitirá matar de un golpe todos los procesos que tengan el mismo nombre. Por ejemplo:
killall firefox
O para forzarlo:
killall -9 firefox
También podemos usar el comando pkill (se utiliza igual que killall) para matar procesos. Si queremos ser más precisos, el comando kill nos permite matar procesos concretos mediante su ID. Por ejemplo, podemos forzar el cierre de un proceso cuyo ID es 1234 con:
kill 1234
O forzar su cierre con:
kill -9 1234
Por último, un reinicio de vez en cuando ayuda también a que el ordenador funcione mejor y mejorar el rendimiento de Linux.
Evitar que los procesos se abran automáticamente
Igual que ocurre con Windows, Linux también puede configurarse para que determinados programas y procesos se abran automáticamente al iniciar sesión en el PC. Esto nos evita, por ejemplo, que tengamos que abrirlos manualmente cuando los vayamos a necesitar, pero a cambio suponen un gasto innecesario de memoria y recursos. Y, si tenemos muchos, podemos llegar a tener problemas de rendimiento.
Podemos ver una lista con todos los procesos que se ejecutan al arrancar el sistema Linux ejecutando el siguiente comando:
systemctl list-unit-files
La lista puede ser muy amplia, ya que se incluyen muchos procesos nativos del propio Linux. Podemos filtrar, si queremos comprobar el estado de un programa concreto, añadiendo al final «| grep» seguido del nombre del programa o proceso. Por ejemplo, para ver el estado del servicio del servidor web apache, el comando sería «systemctl list-unit-files | grep apache2».
Una vez que conozcamos el estado del proceso, podemos elegir si queremos activarlo, o desactivarlo, ejecutando:
sudo systemctl enable apache2
Para desactivar el proceso del arranque del sistema, bastará con cambiar el «enabled» del parámetro anterior por «disabled». Y, así, conseguiremos que el programa en cuestión deje de ejecutarse automáticamente al encender el PC.