Supervisor
گاهی اوقات نیاز است که یک برنامه یا اسکریپت به صورت تمام وقت در سرویس اجرا باشد و حتی اگر سرویس ریستارت شد آن برنامه دوباره اجرا شود. برای این کار در چابکان از Supervisor
استفاده می شود تا اسکریپت شما به صورت تمام وقت در سرویس استقرار داده شده اجرا باشد.
برای فعال سازی Supervisor
در سرویس خود کافیست یک فایل با نام supervisor.conf
در ریشه (root) فایل های سرویس خود ایجاد کنید و باتوجه به syntax
اصولی Supervisor
تنظیمات خود را اعمال نمایید.
بعد از ایجاد فایل و اعمال کردن تنظیمات در ریشه برنامه خود کافیست یکبار سرویس خود را ریستارت نمایید تا Supervisor
سرویس شما فعال شود.
مثال:
[program:app-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work
directory=/var/www/html
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
numprocs=1
user=root
redirect_stderr=true
stdout_logfile=/app-worker.log
چک کردن supervisor
برای چک کردن اجرا صحیح supervisor
میتوانید لاگ های آن را در قسمت مشخص شده stdout_logfile
بررسی نمایید و یا در کنسول با استفاده از دستور زیر وضعیت اجرایی supervisor
را بررسی نمایید.
sudo supervisorctl status
کار با چندین Supervisor
گاهی اوقات نیاز است چندین supervisor
را با توجه به نیاز خود در یک سرویس استفاده نمایید، برای این کار کافی است یک فولد به نام supervisor_conf
ایجاد کرده و به ترتیب supervisor
های خود را درون آن قرار دهید. نام supervisor
های داخل فایل supervisor_conf
میتواند هر چیزی باشد اما پسوند آنها باید .conf
باشد. برای مثال: supervisor1.conf
, supervisor2.conf
supervisor_conf # فولدر اصلی
│
├── supervisor1.conf
│
├── supervisor2.conf
│
├── ...