Un système capable de contrôler et de gérer les processus.
Plus précisément, il transforme le processus en démon et le redémarre en cas de plantage.
Par exemple, le projet que j'attribue utilise le gestionnaire de file d'attente de Laravel, ce qui est utile pour l'exécution parallèle continue des programmes.
Malheureusement pour les utilisateurs de Windows, il ne démarre pas sous Windows car il est de type UNIX.
Documentation officielle http://supervisord.org/running.html#adding-a-program
J'écrirai le contenu minimum nécessaire sur l'utilisation de base de Supervisor.
Cette fois, nous allons l'exercer sur l'instance EC2 lancée de manière appropriée sur AWS.
Accès au serveur ~ Changement de super utilisateur
...$ ssh -i ~/.ssh/udemy_sample2.pem [email protected]
[ec2-user@ip-172-31-37-208 ~]$ sudo su -
Installer le superviseur Je ne l'ai pas étudié en détail, mais il semble que ʻeasy_install` soit bon.
[root@ip-172-31-37-208 ~]# sudo easy_install supervisor
Searching for supervisor
Reading https://pypi.python.org/simple/supervisor/
Downloading https://files.pythonhosted.org/packages/ca/1f/07713b0e1e34c312450878801d496bce8b9eff5ea9e70d41ff4e299b2df5/supervisor-4.1.0-py2.py3-none-any.whl#sha256=a76b2f77a560f2dc411c0254a4eb15f555e99faac48621b0f1fc9ab013944f47
Best match: supervisor 4.1.0
Processing supervisor-4.1.0-py2.py3-none-any.whl
Installing supervisor-4.1.0-py2.py3-none-any.whl to /usr/lib/python2.7/site-packages
writing requirements to /usr/lib/python2.7/site-packages/supervisor-4.1.0-py2.7.egg/EGG-INFO/requires.txt
Adding supervisor 4.1.0 to easy-install.pth file
Installing echo_supervisord_conf script to /usr/bin
Installing pidproxy script to /usr/bin
Installing supervisorctl script to /usr/bin
Installing supervisord script to /usr/bin
Installed /usr/lib/python2.7/site-packages/supervisor-4.1.0-py2.7.egg
Processing dependencies for supervisor
Finished processing dependencies for supervisor
[root@ip-172-31-37-208 ~]# echo_supervisord_conf > /etc/supervisord.conf
Le fichier de configuration est placé sous etc.
Si vous ne gérez pas les fichiers de configuration individuellement, ajoutez le programme que vous souhaitez démoniser à supervisord.conf comme suit.
supervisord.conf
[program:foo]
command=/bin/cat
Si vous souhaitez gérer les fichiers de configuration individuellement, suivez la procédure ci-dessous.
Création d'un répertoire pour stocker les fichiers de configuration de programme individuels
[root@ip-172-31-37-208 ~]# mkdir /etc/supervisord.d
Modifier supervisord.conf
Changements (avant changement)
supervisord.conf
;[include]
;files = relative/directory/*.ini
Pièce modifiée (après modification)
supervisord.conf
[include]
files = /etc/supervisord.d/*.conf
Cela chargera également les fichiers de configuration individuels créés sous /etc/supervisord.d.
Création de fichiers de configuration de programme individuels
[root@ip-172-31-37-208 ~]# vi /etc/supervisord.d/foo.conf
Créé comme suit
foo.conf
[program:foo]
command=/bin/cat
supervisord
Utilisé pour démarrer le superviseur.
Il n'est pas utilisé pour les opérations détaillées du programme.
supervisorctl
Il est utilisé dans le fonctionnement du programme exécuté. Voir l'URL ci-dessous pour les méthodes de fonctionnement détaillées.
Démarrer le superviseur.
[root@ip-172-31-37-208 ~]# /usr/bin/supervisord -c /etc/supervisord.conf
Il commencera simplement par / usr / bin / supervisord
, mais dans ce cas, il semble préférable d'utiliser l'option c et de spécifier le chemin absolu du fichier de configuration car il va chercher l'emplacement du fichier de configuration dans l'ordre. ..
Vérifiez le programme dans le fichier de configuration.
[root@ip-172-31-37-208 etc]# /usr/bin/supervisorctl status
foo RUNNING pid 29747, uptime 0:02:30
Il semble que le programme décrit dans le fichier de configuration s'exécute automatiquement au démarrage de Supervisor.
Essayez de tuer.
[root@ip-172-31-37-208 etc]# kill -9 29747
[root@ip-172-31-37-208 etc]# /usr/bin/supervisorctl status
foo RUNNING pid 29761, uptime 0:00:03
Confirmez que l'ID de processus a changé et qu'il a été redémarré.
Essayez d'arrêter le processus.
[root@ip-172-31-37-208 etc]# /usr/bin/supervisorctl stop foo
foo: stopped
[root@ip-172-31-37-208 ~]# /usr/bin/supervisorctl status
foo STOPPED Mar 29 01:17 AM
Assurez-vous que le processus est arrêté.
Essayez de supprimer le processus.
[root@ip-172-31-37-208 etc]# /usr/bin/supervisorctl remove foo
foo: removed process group
[root@ip-172-31-37-208 etc]# /usr/bin/supervisorctl status
[root@ip-172-31-37-208 etc]#
Assurez-vous que le processus est mort.
Ajoutez un nouveau programme et essayez de l'exécuter au premier plan.
Ajoutez ce qui suit à supervisord.conf
supervisord.conf
[program:foo2]
command=watch -n 1 `date`
Lisez le fichier de configuration et démarrez le processus
[root@ip-172-31-37-208 etc]# /usr/bin/supervisorctl reread
foo: available
foo2: available
[root@ip-172-31-37-208 etc]# /usr/bin/supervisorctl add foo2
foo2: added process group
[root@ip-172-31-37-208 etc]# /usr/bin/supervisorctl status
foo2 RUNNING pid 1177, uptime 0:00:04
[root@ip-172-31-37-208 etc]# /usr/bin/supervisorctl fg foo2
Every 1.0s: `date` Sun Mar 29 04:24:25 2020
sh: Sun: command not found
Exécution confirmée au premier plan.
Vous pouvez quitter avec Ctl + C. (Bien sûr, le processus reste démonisé)
J'ai extrait ceux que je pense utiliser souvent.
status
Vérifiez l'état de l'état du processus.
reread
Lisez le fichier de configuration.
Aucun programme n'est ajouté ou supprimé à ce stade.
add <name>
Appliquez le programme décrit dans le fichier de configuration (processus de démarrage).
remove <name>
Supprimer un processus arrêté.
restart <name>
Redémarrez le processus.
Notez que cela seul ne lira pas le contenu du fichier de configuration.
stop
Arrêtez le processus.
start
Démarrez le processus.
update
Rechargez le fichier de configuration et redémarrez le programme.
Seul le programme dont les paramètres ont été modifiés est-il redémarré?
reload
Redémarrez le démon Supervisor.
Pratique! !! !! !! !!
Recommended Posts