2012-05-07 17:08:58 +04:00
|
|
|
====================
|
|
|
|
Utiliser supervisor
|
2012-05-19 00:18:40 +04:00
|
|
|
====================
|
|
|
|
|
|
|
|
Supervisor est un très bon moyen de gérer des processus Python. Nous n'allons
|
|
|
|
pas couvrir son installation (qui la plupart du temps se résume à
|
|
|
|
apt-get install supervisor ou pip install supervisor), mais voici un rapide
|
|
|
|
résumé de comment l'utiliser:
|
|
|
|
|
|
|
|
Créez un fichier de configuration nommé supervisor.ini::
|
|
|
|
|
|
|
|
[unix_http_server]
|
|
|
|
file=/tmp/supervisor.sock;
|
|
|
|
|
|
|
|
[supervisorctl]
|
|
|
|
serverurl=unix:///tmp/supervisor.sock;
|
|
|
|
|
|
|
|
[rpcinterface:supervisor]
|
|
|
|
supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface
|
|
|
|
|
|
|
|
[supervisord]
|
|
|
|
logfile=/tmp/zerobin.log
|
|
|
|
logfile_maxbytes=50MB
|
|
|
|
logfile_backups=2
|
|
|
|
loglevel=trace
|
|
|
|
pidfile=/tmp/supervisord.pid
|
|
|
|
nodaemon=false
|
|
|
|
minfds=1024
|
|
|
|
minprocs=200
|
|
|
|
user=zerobin
|
|
|
|
|
|
|
|
[program:zerobin]
|
|
|
|
command=/chemin/vers/zerobin/zerobin.py --port 80 --compressed-static
|
|
|
|
directory=/chemin/vers/zerobin/
|
|
|
|
environment=PYTHONPATH='/chemin/vers/zerobin/'
|
|
|
|
user=zerobin
|
|
|
|
autostart=true
|
|
|
|
autorestart=true
|
|
|
|
|
|
|
|
Les 4 premières entrées sont juste de la configuration standard et vous pouvez
|
|
|
|
les copier telles qu'elles.
|
|
|
|
|
|
|
|
La dernière entrée définie un processus (il peut y en avoir plusieurs)
|
|
|
|
que supervisor doit gérer.
|
|
|
|
|
|
|
|
Cela veut dire qu'il va lancer la commande::
|
|
|
|
|
|
|
|
/chemin/vers/zerobin/zerobin.py --port 80 --compressed-static
|
|
|
|
|
|
|
|
Et ceci dans le dossier, avec l'environnement et l'utilisateur défini, le tout
|
|
|
|
en arrière plan en tant que daemon.
|
|
|
|
|
|
|
|
`autostart` et `autorestart` permettent simplement de le lancer et de l'oublier:
|
|
|
|
supervisor redémarera le processus automatiquement en cas d'arrêt impromptu.
|
|
|
|
|
|
|
|
La première fois que vous lancez supervisor, passez lui le fichier de configuration::
|
|
|
|
|
|
|
|
supervisord -c /chemin/vers/supervisor.ini
|
|
|
|
|
|
|
|
Ensuite vous pouvez gérer les processus avec::
|
|
|
|
|
|
|
|
supervisorctl -c /chemin/vers/supervisor.ini
|
|
|
|
|
|
|
|
Cela va démarrer un shell depuis lequel vous pouvez faire un start/stop/restart
|
|
|
|
sur le service.
|
|
|
|
|
|
|
|
Toutes les erreurs seront logguées dans /tmp/zerobin.log.
|
|
|
|
|
|
|
|
|
|
|
|
.. Note::
|
|
|
|
|
|
|
|
Si vous avez installé zerobin dans un virtualenv, vous devriez définir la
|
|
|
|
commande pour qu'elle s'éxécute depuis le virtualenv::
|
|
|
|
|
|
|
|
command=/chemin/vers/le/virtualenv/bin/zerobin --port 80 --compressed-static
|