OpenWebinars

Redes y Sistemas

20 comandos para administrar y gestionar fácilmente procesos en Linux

¿Te cuesta administrar procesos en tu sistema Linux? Tener el dominio de ciertos comandos es clave para mantener el rendimiento y la estabilidad de tu entorno. Te presentamos 20 comandos indispensables para gestionar procesos de forma eficiente y mantener el control total de tu sistema operativo.

Gustavo Cimas Cuadrado

Gustavo Cimas Cuadrado

Especialista Full Stack y manager IT. Domino diferentes lenguajes de programación. Experiencia en redes y sistemas.

Lectura 11 minutos

Publicado el 17 de diciembre de 2015 [Actualizado 4 de noviembre de 2024]

Compartir

Introducción

¿Te cuesta gestionar los procesos en tu sistema Linux? Con el conocimiento adecuado de comandos, puedes tener un control completo y eficiente de tu sistema.

Cuando trabajamos con Linux, uno de los aspectos más importantes es la gestión de procesos. Conocer los comandos adecuados para ver, administrar y controlar procesos nos permite optimizar el rendimiento del sistema y solucionar problemas rápidamente.

En este artículo, abordaremos 20 comandos clave para la gestión de procesos en Linux, organizados en diferentes categorías que van desde listar procesos hasta monitorear el rendimiento del sistema.

A lo largo de esta guía, aprenderás a utilizar comandos para:

  • Listar y visualizar procesos en ejecución.
  • Finalizar y controlar procesos manualmente.
  • Ajustar la prioridad de los procesos.
  • Monitorear y depurar procesos avanzados.
  • Administrar servicios y procesos del sistema.
  • Monitorear el estado general del sistema.

Dominar estos comandos te permitirá realizar una gestión eficiente de los procesos en tu sistema Linux, mejorando así el rendimiento y la estabilidad.

Comandos para listar y visualizar procesos

La primera tarea cuando se trabaja con procesos en Linux es ver los procesos que están en ejecución en el sistema. Para ello, existen varios comandos útiles que te permiten obtener información detallada sobre los procesos en tiempo real, o bien realizar búsquedas específicas.

Comando ps: Información detallada sobre procesos

El comando ps proporciona una instantánea de los procesos en ejecución en un momento dado. Es uno de los comandos más básicos y utilizados para listar procesos en Linux, ya que ofrece información detallada sobre el estado de los mismos.

ps aux

Este comando ofrece una vista completa de todos los procesos que están corriendo en el sistema, con información detallada como el usuario que los ejecuta, el porcentaje de CPU y memoria que utilizan, y el tiempo de ejecución. Es útil para tener una idea general de qué está ocurriendo en tu sistema en un momento dado.

Comando top: Monitorización en tiempo real

El comando top muestra una vista dinámica y en tiempo real de los procesos que están utilizando el sistema. Permite ver el uso de CPU, memoria y otros recursos en tiempo real, facilitando el monitoreo de los procesos más activos.

top -o %CPU

El comando top te permite ver los procesos que más recursos consumen en tiempo real. Es especialmente útil para identificar cuellos de botella en el uso de la CPU o para detectar procesos que están sobrecargando el sistema. Ordenar los procesos por el uso de CPU te ayuda a centrarte rápidamente en los que necesitan atención inmediata.

Comando htop: Interfaz visual para gestionar procesos

htop es una versión mejorada de top que proporciona una interfaz visual más amigable y permite gestionar los procesos directamente desde el terminal. Con htop puedes navegar y filtrar procesos de forma más eficiente.

htop -u nombre_usuario

A diferencia de top, htop ofrece una interfaz mucho más visual y fácil de entender para gestionar procesos. Puedes ver fácilmente el uso de CPU, memoria, e incluso filtrar por usuario. Esto es particularmente útil cuando tienes múltiples usuarios en un servidor y quieres ver qué procesos están corriendo bajo un usuario específico.

Comando pgrep: Búsqueda de procesos por nombre

El comando pgrep permite buscar procesos según su nombre, lo que es especialmente útil cuando necesitas encontrar un proceso en particular sin conocer su PID exacto.

pgrep apache

El comando pgrep es una manera rápida de encontrar procesos en ejecución por su nombre. En este caso, buscar todos los procesos relacionados con apache es útil si necesitas verificar si el servicio está corriendo o si quieres obtener sus PID para luego manipular esos procesos.

Conviértete en SysAdmin
Domina las tecnologías más demandadas. Accede a cursos, talleres y laboratorios prácticos de Linux, VMware, Tomcat, IPv6 y más.
Comenzar gratis ahora

Comandos para finalizar o controlar procesos

En esta sección, veremos los comandos más utilizados para finalizar o controlar procesos en Linux. Estos comandos permiten a los administradores gestionar procesos que se están ejecutando, detenerlos si es necesario o cambiar su estado.

Controlar los procesos es fundamental para mantener un sistema eficiente y evitar que las aplicaciones o servicios consuman más recursos de los necesarios.

Comando kill: Terminar procesos por PID

El comando kill se utiliza para terminar procesos específicos en Linux mediante su PID (Process ID). Es útil cuando necesitas detener un proceso que está consumiendo demasiados recursos o que ha dejado de responder. Este comando permite enviar diferentes señales al proceso, siendo la más común la señal -9, que fuerza la finalización inmediata.

kill -9 [PID]

El comando kill es una herramienta básica pero muy potente para finalizar procesos. Usar -9 fuerza el cierre de un proceso, lo que puede ser útil cuando un proceso no responde. Ten cuidado, ya que no le da al proceso la oportunidad de guardar su estado antes de finalizar.

Comando pkill: Finalizar procesos por nombre

El comando pkill funciona de manera similar a kill, pero en lugar de utilizar el PID, permite finalizar procesos por su nombre. Esto es especialmente útil cuando deseas detener todos los procesos relacionados con una aplicación específica sin tener que buscar manualmente los PIDs.

pkill firefox

El comando pkill es ideal cuando quieres finalizar todos los procesos que coincidan con un nombre. En este caso, puedes matar todos los procesos de firefox de una vez, lo que es mucho más eficiente que hacerlo uno por uno.

Comando killall: Finalización masiva de procesos

El comando killall permite finalizar todos los procesos de una aplicación o servicio de una sola vez. A diferencia de pkill, este comando mata todas las instancias del proceso especificado en todos los usuarios del sistema, lo que lo convierte en una opción potente para finalizar aplicaciones de manera masiva.

killall chrome

killall funciona de manera similar a pkill, pero es más directo ya que termina todos los procesos de un programa con una sola instrucción. Es particularmente útil cuando quieres detener rápidamente todas las instancias de una aplicación o servicio.

Comando fg: Poner procesos en primer plano

fg es un comando que permite mover un proceso que ha sido enviado al segundo plano de nuevo al primer plano. Esto es útil cuando has suspendido un proceso y deseas retomarlo para continuar su ejecución en primer plano.

fg

El comando fg es perfecto cuando necesitas retomar un proceso que fue enviado al segundo plano. Esto es útil cuando accidentalmente envías un proceso al fondo y necesitas traerlo de vuelta al primer plano para continuar trabajando con él.

Comando bg: Enviar procesos al segundo plano

El comando bg envía un proceso en ejecución al segundo plano, permitiendo que sigas utilizando la terminal para otras tareas. Esto es útil cuando necesitas que un proceso siga ejecutándose pero no quieres que ocupe el terminal de forma activa.

bg

bg permite enviar un proceso suspendido al segundo plano para que continúe ejecutándose. Es ideal cuando tienes un proceso que no requiere interacción continua, pero que aún necesita seguir corriendo mientras realizas otras tareas.

Comando nohup: Ejecutar procesos independientemente del terminal

El comando nohup es útil para ejecutar procesos que deben continuar incluso si cierras la terminal. Cuando usas nohup, el proceso se desvincula del terminal y sigue ejecutándose en segundo plano, lo que es ideal para tareas que tardan mucho tiempo en completarse.

nohup script.sh &

El uso de nohup es esencial cuando quieres que un proceso siga corriendo incluso si cierras la terminal. Esto es especialmente útil para scripts o procesos que necesitan ejecutarse durante largos períodos sin supervisión directa.

Comandos para ajustar prioridades de procesos

En Linux, los procesos se ejecutan con una cierta prioridad que afecta la cantidad de recursos que se les asignan. Puedes ajustar estas prioridades para dar más o menos importancia a determinados procesos, controlando cómo se distribuyen los recursos del sistema. Los siguientes comandos permiten asignar o cambiar la prioridad de los procesos en ejecución.

Comando nice: Asignar prioridad al iniciar un proceso

El comando nice permite asignar una prioridad a un proceso cuando se inicia. Las prioridades se miden en valores numéricos que van de -20 (mayor prioridad) a 19 (menor prioridad). Un valor de 0 es la prioridad por defecto. Este comando es útil cuando quieres reducir la carga de un proceso o dar más importancia a otros procesos que necesitan más recursos.

nice -n 10 ./script.sh

El comando nice te permite asignar una prioridad al iniciar un proceso. En este ejemplo, el valor 10 indica una prioridad baja, lo que significa que el proceso recibirá menos tiempo de CPU. Esto es útil cuando tienes procesos que no son urgentes y quieres evitar que consuman demasiados recursos del sistema.

Comando renice: Cambiar la prioridad de procesos en ejecución

A diferencia de nice, que establece la prioridad al iniciar un proceso, el comando renice permite cambiar la prioridad de un proceso que ya se está ejecutando. De esta forma, puedes ajustar la prioridad de un proceso en función de las necesidades actuales del sistema.

renice -n 5 -p [PID]

Con renice, puedes cambiar la prioridad de un proceso en ejecución. Esto es muy útil si un proceso que antes no era importante ahora necesita más recursos del sistema. Al cambiar su valor de nice, puedes asegurarte de que reciba más (o menos) tiempo de CPU, según sea necesario.

Comandos para monitoreo y depuración avanzada

Cuando se necesita un control más exhaustivo sobre los procesos en ejecución o depurar problemas específicos, Linux ofrece una serie de comandos avanzados que permiten monitorear en detalle las actividades del sistema y de los procesos. Estos comandos son especialmente útiles para los administradores que necesitan identificar problemas de rendimiento o conflictos de recursos.

Comando strace: Traza y depura llamadas del sistema

El comando strace es una herramienta poderosa para depurar y rastrear el comportamiento de un proceso. Permite ver las llamadas al sistema que realiza un proceso en tiempo real, lo que es útil para identificar errores y problemas en la ejecución. Se suele utilizar para diagnosticar procesos bloqueados o fallos en el sistema.

strace -p [PID]

El comando strace es una herramienta avanzada para la depuración y análisis de problemas. Te permite ver en tiempo real todas las llamadas al sistema que hace un proceso, lo que es muy útil para diagnosticar fallos en aplicaciones o procesos que no están funcionando como se espera.

Comando lsof: Listar archivos abiertos por procesos

lsof (List Open Files) permite ver todos los archivos abiertos por un proceso. Esto incluye archivos en disco, conexiones de red y otros recursos que el proceso esté utilizando. Es muy útil para identificar qué procesos están utilizando ciertos recursos, como puertos de red o archivos bloqueados.

lsof -p [PID]

lsof es fundamental cuando necesitas saber qué archivos ha abierto un proceso en particular. Este comando te permite ver todos los archivos asociados con un proceso, lo que es muy útil para detectar posibles fugas de archivos o identificar recursos que están bloqueados por un proceso.

Comando fuser: Identificar procesos que utilizan archivos o puertos

El comando fuser permite identificar qué procesos están utilizando un archivo o un puerto en particular. Esto es especialmente útil cuando intentas liberar un archivo bloqueado o determinar qué proceso está ocupando un puerto específico.

fuser -v -n tcp 8080

El comando fuser es perfecto cuando necesitas identificar qué procesos están usando un archivo o un puerto específico. En este ejemplo, puedes ver qué procesos están ocupando el puerto 8080, lo cual es muy útil en servidores web o aplicaciones que requieren acceso a puertos específicos.

Comandos para gestionar servicios y procesos del sistema

En sistemas Linux, gestionar los servicios que se ejecutan en segundo plano es una tarea esencial. Los servicios, o daemons, son procesos que se ejecutan en segundo plano para proporcionar funcionalidades críticas, como servidores web o bases de datos. Existen varios comandos que permiten gestionar estos servicios de forma eficiente.

Comando systemctl: Gestión de servicios en sistemas modernos

systemctl es el principal comando para gestionar servicios en sistemas que usan systemd como sistema de inicialización. Permite iniciar, detener, reiniciar y verificar el estado de los servicios, así como habilitar o deshabilitar su inicio automático al arrancar el sistema.

systemctl start apache2

systemctl es la herramienta estándar en distribuciones modernas de Linux para gestionar servicios. En este caso, el comando inicia el servicio apache2, lo que es útil para levantar servicios que se han detenido o para comenzar nuevos servicios en el sistema.

Comando service: Administración de servicios en sistemas antiguos

El comando service se utiliza en sistemas más antiguos que no usan systemd, como aquellos que utilizan SysVinit. Aunque ha sido mayormente reemplazado por systemctl, sigue siendo útil para la administración de servicios en distribuciones que no utilizan systemd o en situaciones específicas de compatibilidad.

service apache2 restart

En sistemas más antiguos que no utilizan systemd, el comando service es la manera tradicional de gestionar servicios. Aquí, service apache2 restart reinicia el servicio apache2, asegurando que cualquier cambio de configuración o actualización entre en vigor de inmediato.

Comandos para monitorear el estado general del sistema

Además de gestionar y controlar procesos específicos, es importante tener una visión general del estado del sistema. Esto te permitirá monitorear el rendimiento general, el uso de recursos y la estabilidad del sistema en tiempo real. A continuación, te presentamos algunos comandos clave para este propósito.

Comando uptime: Ver el tiempo de actividad del sistema

El comando uptime te muestra cuánto tiempo lleva encendido el sistema, cuántos usuarios están conectados actualmente y la carga promedio del sistema. Es una herramienta simple pero útil para obtener un resumen rápido del estado del sistema.

uptime

El comando uptime te proporciona una visión rápida del estado del sistema, incluyendo el tiempo que ha estado encendido, cuántos usuarios están conectados y la carga media del sistema en los últimos minutos. Es ideal para obtener un resumen del estado general sin necesidad de demasiados detalles.

Comando vmstat: Estadísticas de rendimiento del sistema

El comando vmstat proporciona un conjunto completo de estadísticas sobre el rendimiento del sistema, como el uso de la CPU, la memoria, las operaciones de E/S y las páginas intercambiadas. Es especialmente útil para identificar cuellos de botella en el rendimiento y diagnosticar problemas en el sistema.

vmstat 5

Con vmstat, puedes monitorear en tiempo real el rendimiento del sistema, incluyendo estadísticas de uso de CPU, memoria y procesos. En este ejemplo, el comando mostrará las estadísticas cada 5 segundos, lo que es útil para identificar tendencias o picos en el rendimiento.

Comando iostat: Supervisión de entrada/salida de discos

El comando iostat se centra en la supervisión de la entrada/salida de los dispositivos de almacenamiento del sistema. Este comando permite obtener información detallada sobre el rendimiento de los discos duros y otros dispositivos de almacenamiento conectados al sistema.

iostat

iostat te ayuda a supervisar el rendimiento de los discos, lo que es esencial para detectar cuellos de botella en la entrada y salida de datos. Es ideal para diagnósticos en sistemas donde el acceso a disco es un factor crítico, permitiendo identificar posibles problemas con discos lentos o sobrecargados.

Asegura la infraestructura tecnológica de tu empresa con el menor esfuerzo
Cursos, talleres y laboratorios actualizados para que tus equipos dominen las últimas herramientas para gestionar servidores y aplicaciones.
Solicitar más información

Conclusiones

En este artículo, hemos cubierto una amplia variedad de comandos que te ayudarán a gestionar y administrar procesos en Linux de manera eficiente. Desde comandos básicos como ps para listar procesos hasta herramientas avanzadas como strace para la depuración, cada uno cumple un papel fundamental dependiendo de la situación y tus necesidades.

La gestión de procesos en Linux es vital para optimizar el rendimiento del sistema, asegurando que los recursos se utilicen de manera adecuada. Usar comandos como top o htop te da una visión clara en tiempo real del estado del sistema, mientras que herramientas como nice o renice te permiten ajustar prioridades de procesos y distribuir mejor el uso de la CPU.

Integrar estos comandos en tu flujo de trabajo diario te permitirá solucionar problemas rápidamente, mantener un control preciso de los procesos y, en última instancia, mejorar tu productividad en la administración de sistemas Linux. Practicar y experimentar con estas herramientas es esencial para dominar su uso y aprovechar todo su potencial en situaciones del mundo real.

Bombilla

Lo que deberías recordar de los comandos de Linux para gestionar procesos

  • El comando ps es una herramienta clave para listar y obtener información detallada sobre los procesos en ejecución.
  • top y htop permiten monitorear procesos en tiempo real, con htop ofreciendo una interfaz más amigable y visual.
  • Usa pgrep para buscar rápidamente procesos por su nombre.
  • Para finalizar procesos, kill, pkill y killall son opciones efectivas, siendo kill para finalizar por PID, y pkill y killall para eliminar por nombre o en masa.
  • fg y bg son útiles para gestionar procesos en segundo o primer plano.
  • El comando nohup es esencial para ejecutar procesos que continúen corriendo aunque el terminal se cierre.
  • nice y renice te permiten ajustar las prioridades de procesos, para optimizar el rendimiento de la CPU.
  • Para una depuración más avanzada, strace, lsof y fuser son tus aliados para rastrear y analizar llamadas del sistema o archivos abiertos.
  • systemctl y service son indispensables para gestionar servicios y procesos del sistema, con systemctl siendo más común en sistemas modernos.
  • Usa uptime, vmstat e iostat para obtener estadísticas del sistema y evaluar su rendimiento general.
Compartir este post

También te puede interesar

Icono de la tecnología
Curso

SuSE Linux 12: Su entorno y peculiaridades

Intermedio
2 h. y 4 min.

Primer curso de una serie de cinco que tiene como objetivo poder introducir a la Administración de SuSE...

Rodolfo Sáenz Escobar
4.1
El poder de Linux en el Cloud Computing
Blog

El poder de Linux en el Cloud Computing

En este artículo te contamos los motivos por los que Linux es el Sistema Operativo más utilizado en servidores e infraestructuras en...

Rodolfo Sáenz Escobar
Icono de la tecnología
Curso

Linux desde Cero

Principiante
7 h. y 3 min.

Un curso de Linux para aprender todo lo necesario para administrar sistemas Linux, perfecto para programadores y administradores...

Antonio Sánchez
4.4