Mantener un bot “vivo” no equivale a mantener sana una automatización. PM2, Supervisor y systemd arrancan procesos persistentes y los reinician tras un fallo. La elección depende del runtime y el equipo, pero la estabilidad nace de diseñar el ciclo de vida alrededor de los fallos.
Cuándo encaja PM2
PM2 resulta cómodo para Node.js. Su ecosystem file define comandos, instancias, entorno, umbrales de memoria y logs. El modo cluster no es automáticamente seguro para bots: varias instancias podrían consumir la misma cuenta o tarea si colas y bloqueos no admiten concurrencia.
Cuándo encaja Supervisor
Supervisor ofrece control sencillo e independiente del runtime para Python, PHP, Node.js y shell. Configura usuario restringido, directorio, entorno explícito, señal de parada gradual y rotación de logs.
Cuándo encaja systemd
systemd viene integrado en la mayoría de Linux modernos y conecta con arranque, usuarios, límites, endurecimiento y journal. Añade espera y límites de frecuencia para que una versión rota no produzca un bucle intenso.
La arquitectura importa más que el gestor
Coloca tareas en una cola duradera, confírmalas después de guardar estado y haz segura la repetición cuando sea posible. Guarda checkpoints fuera de memoria. Aplica reintentos limitados con backoff y revisión manual. En plataformas de terceros, opera solo con usos autorizados, límites publicados y condiciones aplicables; un reinicio nunca debe causar una avalancha de peticiones.
Parada gradual y despliegue
Al terminar, deja de aceptar trabajo, termina o libera la tarea, vacía logs y cierra conexiones. Concede un timeout realista. Despliega versiones identificables, ejecuta una prueba mínima y conserva un rollback documentado.
Errores comunes
- ejecutar bots dentro de SSH
- usar reinicios ilimitados y sin espera
- guardar estado solo en memoria
- duplicar workers para una cuenta
- reintentar acciones no idempotentes a ciegas
- ejecutar como root
- versionar secretos
- llenar el disco con logs y capturas
- medir uptime, pero no trabajo completado
Checklist práctico de producción
- usa una cuenta con mínimos privilegios
- fija rutas absolutas y directorio
- valida entorno y secretos al arrancar
- define espera, límite de reinicios y memoria
- gestiona señales y parada gradual
- usa colas, bloqueos y checkpoints duraderos
- limita y monitoriza reintentos
- rota logs y trazas
- alerta por trabajo estancado, caídas y edad de cola
- prueba reinicio, fallo de red y rollback
Monitorización de trabajo útil
Mide tareas correctas, fallos, duración, edad de cola, reintentos y tiempo desde el último resultado válido. Añade IDs de correlación sin credenciales ni datos innecesarios. Lee qué guardar en logs de bots y cómo escalar bots con seguridad.
Cuándo contratar a una persona técnica
Contrata a un especialista cuando los reinicios duplican acciones, los workers compiten por cuentas, los despliegues interrumpen tareas, los secretos están expuestos o el uptime parece correcto mientras la producción se detiene. Revisa semántica, colas, límites, observabilidad y recuperación, no solo el gestor.
Conclusión
Elige PM2 por comodidad en Node, Supervisor para varios runtimes o systemd para servicios Linux nativos, y diseña para el fallo. Revisa mis servicios de automatización o contacta conmigo.