==================== Utiliser supervisor ==================== 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