0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
%
DebianLinux

Instalar y configurar Supervisor

En este artículo, te enseñaré cómo instalar y configurar Supervisor en tu servidor y te proporcionaré siete ejemplos prácticos de cómo usarlo para administrar procesos en segundo plano en tu servidor.

¿Qué es Supervisor?

Supervisor es un sistema cliente/servidor que permite supervisar y controlar procesos en segundo plano en sistemas operativos basados en Unix. Con Supervisor, puedes iniciar, detener y reiniciar procesos automáticamente, y recibir alertas si alguno de ellos falla.

Instalación de Supervisor

Para instalar Supervisor en tu servidor, sigue estos sencillos pasos:

1: Abre una terminal en tu servidor e ingresa el siguiente comando para actualizar la lista de paquetes disponibles:
sudo apt-get update

2: Luego, ingresa el siguiente comando para instalar Supervisor:
sudo apt-get install supervisor

3: Una vez que la instalación haya finalizado, inicia el servicio Supervisor con el siguiente comando:
sudo service supervisor start

¡Listo! Ahora, Supervisor está instalado y listo para ser configurado.

Configuración de Supervisor

Supervisor se configura a través de un archivo llamado supervisord.conf, que se encuentra en la carpeta /etc/supervisor. Para configurar Supervisor, sigue estos pasos:
1: Abre el archivo supervisord.conf con el siguiente comando:
sudo nano /etc/supervisor/supervisord.conf

2: Dentro del archivo, puedes definir los programas que deseas supervisar. Por ejemplo, puedes agregar lo siguiente al final del archivo para supervisar un programa llamado my_program.py:

[program:my_program]
command=/path/to/my_program.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/my_program.err.log
stdout_logfile=/var/log/my_program.out.log

En este ejemplo, command es la ruta del programa que deseas supervisar, autostart indica si el programa debe iniciarse automáticamente cuando Supervisor se inicia, autorestart indica si el programa debe reiniciarse automáticamente si falla, y stderr_logfile y stdout_logfile son las rutas de los archivos de registro para errores y salida estándar, respectivamente.

Guarda el archivo y reinicia Supervisor con el siguiente comando:
sudo service supervisor restart

¡Listo! Ahora, Supervisor supervisará el programa que has definido.

Ejemplos de uso de Supervisor

A continuación, se presentan siete ejemplos prácticos de cómo usar Supervisor para administrar procesos en segundo plano en tu servidor:

1: Ejecución de un script de Python

Si tienes un script de Python que deseas ejecutar en segundo plano, puedes supervisarlo con Supervisor de la siguiente manera:

[program:my_script]
command=/path/to/my_script.py
autostart=true
autorestart=true
stderr_logfile=/var/log/my_script.err.log
stdout_logfile=/var/log/my_script.out.log

2: Ejecución de un servidor de Node.js

Si tienes un servidor de Node.js que deseas supervisar con Supervisor, puedes hacerlo de la siguiente manera:

[program:my_server]
command=/path/to/node /path/to/my_server.js
autostart=true
autorestart=true
stderr_logfile=/var/log/my_server.err.log
stdout_logfile=/var/log/my_server.out.log

En este ejemplo, command es la ruta del ejecutable de Node.js y la ruta del archivo del servidor de Node.js que deseas ejecutar.

3: Ejecución de una cola de trabajos con Celery

Si estás usando Celery para administrar una cola de trabajos en tu servidor, puedes supervisar los trabajos de la siguiente manera:

[program:celery]
command=/path/to/celery worker -A myapp.tasks --loglevel=INFO
directory=/path/to/myapp
user=myuser
autostart=true
autorestart=true
stderr_logfile=/var/log/celery.err.log
stdout_logfile=/var/log/celery.out.log

En este ejemplo, command es el comando que se utiliza para ejecutar Celery, directory es la ruta del directorio raíz de tu aplicación, user es el usuario que se utilizará para ejecutar Celery, y loglevel es el nivel de registro que deseas utilizar.

4: Ejecución de un proceso de cron

Si tienes un proceso de cron que deseas supervisar, puedes hacerlo de la siguiente manera:

[program:my_cron]
command=/usr/bin/php /path/to/my_script.php
autostart=true
autorestart=true
stderr_logfile=/var/log/my_cron.err.log
stdout_logfile=/var/log/my_cron.out.log

Ejemplo de un proceso de cron que se ejecuta cada hora:

[program:hourly_cron]
command=/usr/bin/php /path/to/hourly_script.php
autostart=true
autorestart=true
startsecs=10
startretries=3
stderr_logfile=/var/log/hourly_cron.err.log
stdout_logfile=/var/log/hourly_cron.out.log

Ejemplo de un proceso de cron que se ejecuta cada día a una hora específica:

[program:daily_cron]
command=/usr/bin/php /path/to/daily_script.php
autostart=true
autorestart=true
startsecs=10
startretries=3
stderr_logfile=/var/log/daily_cron.err.log
stdout_logfile=/var/log/daily_cron.out.log

Ejemplo de un proceso de cron que se ejecuta cada semana:

[program:weekly_cron]
command=/usr/bin/php /path/to/weekly_script.php
autostart=true
autorestart=true
startsecs=10
startretries=3
stderr_logfile=/var/log/weekly_cron.err.log
stdout_logfile=/var/log/weekly_cron.out.log


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *