Instalar supervisor en ubuntu y configurarlo para mysql ?
Introducción
En algunos entornos en necesario tener programas que se mantenga activo, por ejemplo mysql,apache,nodejs.
Supervisor nos ayuda a mantener esos programas activos, con una sola configuración centralizada.
Instalación
La instalación de supervisor en Ubuntu y Debian es muy simple, en teoria este programa ya existe en los repositorios.
Antes que nada debemos de estar logueados como super usuario y ejecutar este comando:
sudo apt-get install supervisor
Una vez instalado supervisor hay que iniciarlo asi:
sudo service supervisor restart
Mantener mysql siempre activo con supervisor:
Creamos el archivo mysql.conf en el path “/etc/supervisor/conf.d/” asi:
sudo vim /etc/supervisor/conf.d/mysql.conf
En donde colocamos el siguiente texto:
[supervisord]
nodaemon=true
[program:mysql]
command=/usr/bin/pidproxy /var/run/mysqld/mysqld.pid /etc/init.d/mysql start
autostart=true
autorestart=true
user=root
Guardamos y cerramos
Reiniciamos supervisord para cargar las configuraciones previamente creadas en “/etc/supervisor/conf.d/mysql.conf”
supervisorctl reread
Actualizamos supervisord para que comience a supervisar los programas:
supervisorctl update
Para ver que programas se estan supervisando escribimos el siguiente cmando:
supervisorctl
Donde nos tiene que dar como resultado algo asi:
mysql RUNNING pid 18721, uptime 13:35:40
supervisor>
supervisor> esta en espera de algun comando de supervisor por ejemplo podrias escribir esto:
supervisor> help
Y nos da este resultados
default commands (type help <topic>):
=====================================
add clear fg open quit remove restart start stop update
avail exit maintail pid reload reread shutdown status tail version
Y para salir de supervisor solo escribimos esto:
supervisor> exit
Probar el funcionamiento de supervisor
Obtenemos el id del procedimiento mysql con este comando:
service mysql status
Nos percatamos que el pid de mysql es 4956 (este pid es el resultado de mi servidor en tu servidor debe ser diferente) asi que si ejecuamos este comando para matar mysql:
kill 4956
Esperamos unos 5 segundos y ejecutamos el comando :
supervisorctl
Debe dar este resultado
supervisorctl
mysql RUNNING pid 20618, uptime 0:00:02
Si nos percatamos el pid ha cambiado a 20618 lo que significa es que mysql se reinicio gracias a supervisor
Fuentes:
https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps
https://github.com/wiliamsouza/docker-mysql/blob/master/supervisord.conf