Lorsque je développais une application Web Python avec aws en utilisant le framework Tornado, l'application Web fonctionnant avec aws dormait souvent (l'application tombe), alors j'en ai fait un démon et l'ai fait fonctionner 24/7 (toujours démarré). Un mémo quand j'ai essayé de me réveiller (redémarrer l'application) même si je me suis endormi.
Supervisor est un outil de gestion de processus léger conçu en Python.
La procédure est la suivante. Tout le travail est fait avec ubuntu 14.04 sur aws.
Supervisor peut être installé avec ʻapt-get ou
pip, mais pour le moment, je décrirai comment installer avec ʻapt-get
sur Ubuntu.
Veuillez noter que l'emplacement du fichier de configuration changera en fonction de la méthode d'installation. Pour apt-get * /etc/supervisor/conf.d/
*
Pour Ubuntu (apt-get)
$ sudo apt-get install supervisor
Confirmez qu'il a été installé. La version semble inclure «3.0b2».
$ supervisord -v
3.0b2
$ sudo supervisorctl version
3.0b2
Écrivez les informations de démarrage de l'application Web dans le fichier de configuration du superviseur (fichier de configuration).
Créez un fichier de configuration dans * /etc/supervisor/conf.d/
*.
$ sudo vim /etc/supervisor/conf.d/tornado.conf
Le contenu est le suivant. Le nom du processus à gérer par Supervisor est ** tornado **.
tornado.conf
[program:tornado] ;Nom du processus
directory=/home/ubuntu/tornado-app ;Directeur de travail
command=/home/ubuntu/tornado-app/venv/bin/python /home/ubuntu/tornado-app/server.py --port=3000 ;Commande de démarrage
numprocs=1 ;Nombre d'instances de démarrage?
autostart=true ;démarrage automatique
autorestart=true ;Redémarrer automatiquement
user=ubuntu ;Lancer l'utilisateur
redirect_stderr=true ;Erreur standard de sortie
stdout_logfile=/var/log/supervisor/tornado.log ;Destination de sortie du fichier journal
Supposons que l'application Web ait déjà été clonée git dans / home / ubuntu / tornado-app
.
$ cd ~/tornado-app
$ source venv/bin/activate #activer virtualenv
(venv)$ python server.py --port=3000 &
Veuillez également vous référer à Configuration du superviseur pour savoir comment écrire le fichier de configuration du superviseur.
Démarrez le superviseur à l'aide de la commande service supervisor
Redémarrez Supervisor lui-même.
$ sudo service supervisor restart
Assurez-vous que le superviseur lui-même est en cours d'exécution.
$ sudo service supervisor status
is running
Gérez le processus avec la commande supervisorctl
.
Si vous modifiez le fichier de configuration, vous devrez certainement le relire. Utilisez la commande suivante pour lire le fichier conf.
$ sudo supervisorctl reread
Après cela, démarrez l'application Web gérée par Supervisor.
$ sudo supervisorctl start tornado #Commencez
Vérifiez si l'application Web est en cours d'exécution.
$ sudo supervisorctl status #Vérification de l'état
tornado RUNNING pid 3414, uptime 0:07:19
Ça a commencé!
À propos, l'arrêt et le redémarrage sont les suivants.
$ sudo supervisorctl stop tornado #Arrêtez
$ sudo supervisorctl restart tornado #Redémarrer
De plus, here a été utile pour la commande supervisorctl.
Recommended Posts