การใช้ supervisor คุม web app ที่รันด้วย gunicorn

supervisor ช่วยให้เราคุม app ต่างๆได้ง่ายขึ้น เช่น สั่ง start/stop ได้,
ไม่ต้องสร้าง screen ไว้รัน app ค้างไว้, เวลา reboot ก็ช่วย auto start app เราได้

ลงด้วย yum install supervisor

ให้ service ทำงานโดย service supervisord start
ลองเช็คว่ารันยังโดย systemctl -t service ก็ได้ หรือไม่ก็ ps aux | grep supervisor
ถ้าจะให้ start service ตอน reboot ด้วยก็สั่ง chkconfig supervisord on

สมมติ app เราชื่อว่า myapp เป็นเวบที่รันด้วย gunicorn

เช็คดูว่า /etc/supervisord.conf include ไฟล์ถูกที่แล้ว

ตัวอย่าง /etc/supervisord.d/myapp.ini
[program:myapp]
command = /app/myapp/env/bin/python /app/myapp/env/bin/gunicorn -b 127.0.0.1:7001 mysite.wsgi:application
directory = /app/myapp/mysite/
user = root

อันนี้เป็นการรัน app django ตัวหนึ่ง จะเห็นว่าสั่งแบบนี้ไม่ต้อง source env/bin/activate ตัว virtualenv

รัน myapp.ini ตัวใหม่โดย
supervisorctl reread
supervisorctl update
supervisorctl start myapp

ลองเข้า web browser ดู เวบเราควรจะทำงานแล้ว ถ้าอยาก stop ก็ supervisorctl stop myapp ได้

ถ้าเรา start/stop supervisord พวก app ที่มันคุมอยู่ก็จะ start/stop ตาม

ได้ความรู้จาก http://www.onurguzel.com/managing-gunicorn-processes-with-supervisor/

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s