Supervisor
Supervisor - ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡΠ»ΠΈΠ½Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΈΡΠΎΠ½-ΠΏΠ°ΠΊΠ΅Ρ:
pip install supervisor
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Supervisor, Π±ΡΠ΄ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ:
echo_supervisord_conf > /etc/supervisord.conf
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΠΊΡΠΈΡ program Π² supervisord.conf
:
[program:{program_name}]
process_name = {program_name}
command={command}
directory={directory}
redirect_stderr=true
user=root
autorestart=true
program_name - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°
command - Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°
directory - ΡΠ°Π±ΠΎΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
ΠΠΎΠ»ΡΡΠ΅ ΠΎΠΏΡΠΈΠΉ Π·Π΄Π΅ΡΡ.
Π§Π°ΡΡΠΎ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΠ°ΠΌΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠΎΠΌΠΈΠΌΠΎ Π·Π°ΠΏΡΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Supervisor, ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ nginx-ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ aiohttp, gunicorn.
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°
ΠΠΈΡΠΎΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈΠ½ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ. Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΡΡΡ ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ pipenv:
pipenv run python scrip.py
ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠΌΡ ΡΠΊΡΠΈΠΏΡΡ ΠΏΠΈΡΠ°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² supervisord.conf
.
ΠΠ°ΠΏΡΡΠΊ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³Π° ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ:
sudo supervisorctl reread
sudo supervisorctl update
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²:
sudo supervisorctl status
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°:
sudo supervisorctl restart {process_name}
ΠΡΠ»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (ΠΎΠΏΡΠΈΡ numprocs), ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ Π³ΡΡΠΏΠΏΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²:
sudo supervisorctl restart {process_name}:*
ΠΠΎΠ³ΠΈ
ΠΠΎΠ³ΠΈ supervisor Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΠΏΡΡΠΈ: /var/log/supervisor
- ΡΠ°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ°ΡΡΡ FATAL
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΠ»ΠΎΡ
ΠΎ
ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠΈΠΏΠ°:
unix:///var/run/supervisor.sock no such file
ΠΠ»ΠΈ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ°ΠΊΠΎΠ΅:
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib/python2.7/socket.py line: 224
Π’ΠΎ, ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ supervisor:
sudo supervisord
Last updated
Was this helpful?