Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| linux:supervisor [14-10-2014 09:29] – edmc73 | linux:supervisor [16-12-2019 15:26] (Version actuelle) – [Supervisor] edmc73 | ||
|---|---|---|---|
| Ligne 7: | Ligne 7: | ||
| Avant de détailler plus en détail, lisez ce lien => https:// | Avant de détailler plus en détail, lisez ce lien => https:// | ||
| + | ===== Config ===== | ||
| + | |||
| + | Les fichiers de config doivent être écrit dans **/ | ||
| + | |||
| + | < | ||
| + | [program: | ||
| + | command=/ | ||
| + | autostart=true | ||
| + | autorestart=true | ||
| + | user=toto | ||
| + | stdout_logfile=/ | ||
| + | stderr_logfile=/ | ||
| + | </ | ||
| + | |||
| + | Si vous souhaitez lancer plusieurs instances, vous devez spécifier le nom des process avec obligatoirement la variable %(process_num)s | ||
| + | < | ||
| + | [program: | ||
| + | command=/ | ||
| + | process_name=worker_%(process_num)02d | ||
| + | numprocs=4 | ||
| + | autostart=true | ||
| + | autorestart=true | ||
| + | user=toto | ||
| + | stdout_logfile=/ | ||
| + | stderr_logfile=/ | ||
| + | </ | ||
| + | |||
| + | Si vous souhaitez que supervisor se place dans un répertoire avant de lancer la commande, ajoutez | ||
| + | directory=/ | ||
| + | ===== Commandes ===== | ||
| + | |||
| + | Pour se mettre dans le shell de supervisor | ||
| + | supervisorctl | ||
| + | |||
| + | < | ||
| + | supervisor> | ||
| + | |||
| + | default commands (type help < | ||
| + | ===================================== | ||
| + | add clear fg open quit remove | ||
| + | avail exit | ||
| + | </ | ||
| + | |||
| + | Pour lire les fichiers de config | ||
| + | > reread | ||
| + | Pour appliquer les fichiers de config | ||
| + | > update | ||
| + | |||
| + | Lister les process dispo | ||
| + | > avail | ||
| + | Pour désactiver un process | ||
| + | > remove nom_du_process | ||
| + | Activer un process | ||
| + | > add | ||
| + | |||
| + | Voir ce qui se passe dans un process | ||
| + | > fg nom_du_process | ||
| + | |||
| + | ===== Notification par mail ===== | ||
| + | |||
| + | En cas de crash on aimerait bien recevoir un mail, pour cela il faut utiliser un script python | ||
| + | |||
| + | https:// | ||
| + | |||
| + | apt install python-pip | ||
| + | pip install superlance | ||
| + | ou | ||
| + | easy_install superlance | ||
| + | |||
| + | si il manque des dépendances python, installez-les | ||
| + | |||
| + | Ensuite, créer une config pour supervisor ( https:// | ||
| + | < | ||
| + | [eventlistener: | ||
| + | command=crashmail -p program1 -p group1: | ||
| + | events=PROCESS_STATE_EXITED | ||
| + | </ | ||
| + | |||
| + | puis | ||
| + | supervisorctl reread | ||
| + | supervisorctl update | ||
| + | |||
| + | On peut aussi spécifier le mail de l' | ||
| + | < | ||
| + | [eventlistener: | ||
| + | command=crashmail -a -m dev@example.com -s '/ | ||
| + | events=PROCESS_STATE | ||
| + | </ | ||
| + | |||
| + | |||
| + | Plus d'info sur les events => http:// | ||
| + | |||
| + | ===== Les logs ===== | ||
| + | |||
| + | Supervisord rotate lui même ses logs (si > 50Mo, rotate sur 10 fichiers par défaut) mais si vous voulez utiliser logrotate, il est important de mettre l' | ||
| + | |||
| + | > **copytruncate** | ||
| + | > Truncate the original log file to zero size in place after creating a copy, instead of moving the old log file and optionally creating a new one. It can be used when some program cannot | ||
| + | |||
| + | |||
| + | < | ||
| + | / | ||
| + | daily | ||
| + | rotate 60 | ||
| + | copytruncate | ||
| + | compress | ||
| + | missingok | ||
| + | notifempty | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Puis de désactivez aussi la taille max des logs et la rotation automatique | ||
| + | < | ||
| + | [program: | ||
| + | directory=/ | ||
| + | command=/ | ||
| + | stderr_logfile=/ | ||
| + | stdout_logfile=/ | ||
| + | stdout_logfile_maxbytes=0 | ||
| + | stderr_logfile_maxbytes=0 | ||
| + | stdout_logfile_backups=0 | ||
| + | stderr_logfile_backups=0 | ||
| + | </ | ||
| + | |||
| + | Vous pouvez aussi rediriger les logs d' | ||
| + | redirect_stderr=true | ||