Skip to content

Gestión de Procesos

Comandos esenciales para monitorear, controlar y gestionar procesos en sistemas Linux.

Muestra información sobre procesos en ejecución. Fundamental para monitoreo de sistema y detección de actividad sospechosa.

Terminal window
# Procesos del usuario actual
ps
# Todos los procesos con detalles
ps aux
# Procesos en formato árbol
ps auxf
# Procesos de un usuario específico
ps -u username
# Procesos por PID
ps -p 1234
# Procesos con información de red
ps aux | grep -E "(LISTEN|ESTABLISHED)"

Uso en pentesting: Identificar servicios en ejecución, procesos sospechosos y aplicaciones que pueden tener vulnerabilidades.

Monitor en tiempo real del uso de CPU, memoria y procesos activos. Esencial para análisis de rendimiento.

Terminal window
# Monitor básico
top
# Ordenar por CPU
top -o %CPU
# Ordenar por memoria
top -o %MEM
# Mostrar procesos de un usuario
top -u username
# Modo batch (no interactivo)
top -b -n 1

htop - Monitor mejorado (si está instalado)

Section titled “htop - Monitor mejorado (si está instalado)”

Versión mejorada de top con interfaz más amigable y funciones adicionales. Mejor para análisis interactivo.

Terminal window
htop

Muestra procesos en estructura jerárquica tipo árbol. Útil para entender relaciones padre-hijo entre procesos.

Terminal window
# Árbol completo
pstree
# Con PIDs
pstree -p
# De un usuario específico
pstree username

Envía señales a procesos para terminarlos o controlarlos. Comando crítico para gestión de procesos maliciosos.

Terminal window
# Terminar proceso por PID
kill 1234
# Forzar terminación
kill -9 1234
# Terminar gracefully
kill -15 1234
# Listar señales disponibles
kill -l

Termina todos los procesos que coincidan con un nombre específico. Útil para detener servicios o aplicaciones.

Terminal window
# Terminar todos los procesos con ese nombre
killall firefox
# Forzar terminación
killall -9 firefox
# Terminar procesos de un usuario
killall -u username

Termina procesos basándose en patrones de nombre o atributos. Más flexible que killall para selección avanzada.

Terminal window
# Terminar por nombre parcial
pkill fire
# Terminar por usuario
pkill -u username
# Terminar por terminal
pkill -t pts/0

Busca procesos por nombre o atributos y devuelve sus PIDs. Útil para scripting y automatización.

Terminal window
# Buscar por nombre
pgrep firefox
# Buscar por usuario
pgrep -u username
# Mostrar nombre del proceso
pgrep -l firefox
Terminal window
# Ejecutar en segundo plano
command &
# Ver trabajos activos
jobs
# Traer trabajo a primer plano
fg %1
# Enviar trabajo a segundo plano
bg %1
# Suspender proceso actual
Ctrl+Z

Reanuda trabajos suspendidos en background. Útil para continuar procesos sin bloquear la terminal.

Terminal window
# Ejecutar en segundo plano
command &
# Ver trabajos activos
jobs
# Enviar trabajo a segundo plano
bg %1
# Suspender proceso actual
Ctrl+Z

Trae trabajos de background al foreground. Permite retomar control interactivo de procesos.

Terminal window
# Traer trabajo a primer plano
fg %1

Muestra trabajos activos en la sesión actual. Importante para gestión de tareas en background.

Terminal window
# Ver trabajos activos
jobs

Ejecuta comandos que persisten al cerrar la sesión. Esencial para procesos de larga duración.

Terminal window
# Ejecutar comando que persiste al cerrar terminal
nohup long_running_command &
# Redirigir salida
nohup command > output.log 2>&1 &
Terminal window
# Crear nueva sesión
screen
# Crear sesión con nombre
screen -S session_name
# Listar sesiones
screen -ls
# Reconectar a sesión
screen -r session_name
# Desconectar sesión (dentro de screen)
Ctrl+A, d
Terminal window
# Nueva sesión
tmux
# Nueva sesión con nombre
tmux new -s session_name
# Listar sesiones
tmux ls
# Conectar a sesión
tmux attach -t session_name
# Desconectar (dentro de tmux)
Ctrl+B, d

systemctl - Control de servicios (systemd)

Section titled “systemctl - Control de servicios (systemd)”

Gestiona servicios del sistema en distribuciones con systemd. Fundamental para administración de servicios.

Terminal window
# Estado de un servicio
systemctl status service_name
# Iniciar servicio
systemctl start service_name
# Detener servicio
systemctl stop service_name
# Reiniciar servicio
systemctl restart service_name
# Habilitar al inicio
systemctl enable service_name
# Deshabilitar al inicio
systemctl disable service_name
# Listar todos los servicios
systemctl list-units --type=service
# Servicios fallidos
systemctl --failed

Gestiona servicios en sistemas SysV init. Comando tradicional para control de demonios del sistema.

Terminal window
# Estado del servicio
service service_name status
# Iniciar servicio
service service_name start
# Detener servicio
service service_name stop
# Reiniciar servicio
service service_name restart
Terminal window
uptime
Terminal window
w
Terminal window
who
Terminal window
# Últimos logins
last
# Últimos logins de un usuario
last username
# Últimos reinicios
last reboot
Terminal window
# Procesos ejecutándose como root
ps aux | grep "^root"
# Procesos con conexiones de red
netstat -tulpn | grep LISTEN
# Procesos con archivos abiertos
lsof -i
# Procesos que consumen más CPU/memoria
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
Terminal window
# Procesos iniciados recientemente
ps -eo pid,ppid,cmd,etime --sort=etime | head -20
# Procesos con privilegios elevados
ps aux | grep -E "(sudo|su|root)"
# Servicios de red activos
ss -tulpn | grep LISTEN
Terminal window
# Historial de comandos de usuarios
history
cat ~/.bash_history
# Procesos zombie
ps aux | grep -i zombie
# Carga del sistema
cat /proc/loadavg
Terminal window
# Ejecutar con prioridad baja
nice -n 10 command
# Cambiar prioridad de proceso existente
renice 10 -p PID
Terminal window
# Ejecutar con baja prioridad de E/S
ionice -c 3 command
Terminal window
# Ejecutar comando con timeout
timeout 30s command

Nota de Seguridad: Al analizar procesos en un sistema comprometido, ten cuidado de no alertar al atacante. Usa comandos que generen mínimo ruido en los logs del sistema.