miércoles, 26 de noviembre de 2025

Cómo pausar y reanudar un proceso sin matarlo en GNU/Linux


En Linux/macOS (y en cualquier sistema Unix-like) puedes pausar y reanudar un proceso en ejecución sin matarlo usando las señales SIGSTOP y SIGCONT. Solo necesitas conocer su PID.

Comandos básicos

Acción Comando Qué hace realmente
Pausar / congelar kill -STOP <PID> o kill -19 <PID> Envía la señal SIGSTOP → el proceso se detiene completamente (ni CPU ni nada)
Reanudar / descongelar kill -CONT <PID> o kill -18 <PID> Envía la señal SIGCONT → el proceso continúa exactamente donde lo dejó

Ejemplos prácticos

# Supongamos que tienes un programa pesado con PID 12345
ps aux | grep mi_programa_heavy
# → ves que el PID es 12345

# 1) Pausarlo (se congela al instante)
kill -STOP 12345
# o también
kill -19 12345

# 2) Comprobar que está parado (estado T = stopped)
ps aux | grep 12345
# → verás una "T" en la columna STAT

# 3) Reanudarlo más tarde (incluso días después)
kill, kill -CONT 12345
# o también
kill -18 12345

Atajos útiles

# Pausar con Ctrl+Z desde la terminal donde está corriendo (foreground)
Ctrl + Z          → suspende el proceso actual y te devuelve al shell
# El proceso queda en estado "stopped"

# Reanudar en segundo plano
bg                → sigue ejecutándose en background
# Reanudar en primer plano
fg                → lo trae de nuevo al foreground

Resumen rápido (chuletas)

Acción Comando rápido
Pausar proceso kill -STOP 12345
Reanudar proceso kill -CONT 12345
Pausar proceso actual (tecla) Ctrl + Z
Reanudar en background bg
Reanudar en foreground fg

Funciona con cualquier proceso que tú poseas (o con sudo si es de otro usuario/root).
El proceso se queda exactamente en el mismo punto: variables, sockets, archivos abiertos… todo intacto. Ideal para liberar CPU temporalmente, mover recursos, o simplemente “congelar” algo mientras investigas


 

No hay comentarios:

Publicar un comentario