Supervisor 安裝與配置

supervisord簡介

官網:http://supervisord.org/使用說明講解很是詳細html

Supervisor 是一個客戶端/服務器系統,容許用戶監控和控制類 Unix 操做系統上的進程數。python

  • 是client/server 系統shell

  • 把不是守護進程的進程變成守護進程django

  • 監控它本身啓動的進程,相似於看門狗centos

  • 能夠做爲開機啓動的一種封裝服務器

  • 能夠精確控制進程的狀態,而不是pidfile那麼不許確spa

本文是基於centos6.5上的安裝教程.操作系統

安裝

說白了就是個python包,官方文檔,我這裏系統是centos6.5 root用戶.net

pip install supervisor  rest


通常安裝完的時候顯示安裝路徑,若是不在bin路徑,就本身添加一個軟鏈接

配置文件在 /etc/supervisord.conf
我這裏安裝以後沒有發現,我先到安裝目錄下找找,沒有在本身建立那個文件,若是啓動沒有找
到就在啓動命令中添加配置文件路徑。

配置

supervisord 提供了一個模板文件,執行下面shell文件或者輸出到文件中,改改就能夠用了

echo_supervisord_conf  
#或者  
echo_supervisord_conf > supervisord.conf 

不過模板文件有點太多了,咱們仍是按照文檔寫點程序來配置把,此次的目標是啓動一個django開發

服務器而且讓他成爲一個獨立進程,能夠控制這個進程。

創建一個最簡單的django,並能夠啓動

[root@localhost ~]# pip install -i http://pypi.douban.com/simple django==1.6  
[root@localhost ~]# su - lzz  
[lzz@localhost ~]$ django-admin.py startproject lzztest  
[lzz@localhost ~]$ cd lzztest/  
[lzz@localhost lzztest]$ python manage.py runserver 8000 #看到能夠正常啓動,crtl+c關閉  
[lzz@localhost lzztest]$ exit #切會到root用戶下 


編輯supervisord文件 文件的內容以下(有錯誤),文件的位置就是root的home路徑 /root

user=lzz  
command=/usr/bin/python /home/lzz/lzztest/manage.py runserver 8000  
autostart=true  
autorestart=true  
stderr_logfile=/home/lzz/lzztest/logs/err.log  
stdout_logfile=/home/lzz/lzztest/logs/out.log  
stopsignal=INT


啓動下觀察效果,出現了一個錯誤。

[root@localhost ~]# supervisord -c ./supervisord.conf   
Error: .ini file does not include supervisord section  
For help, use /usr/bin/supervisord -h 

意思是少了 [supervisrod] 配置項,能夠參考 supervisord-section-settings, 修改配置文件以下,還有log文件最好先創建好,supervisord不會本身建立。

[program:djangotest]  
user=lzz  
command=/usr/bin/python /home/lzz/lzztest/manage.py runserver 8000  
autostart=true  
autorestart=true  
stderr_logfile=/home/lzz/lzztest/logs/err.log  
stdout_logfile=/home/lzz/lzztest/logs/out.log  
stopsignal=INT  
   
[supervisord]


再次啓動:

[root@localhost ~]# supervisord -c /root/supervisord.conf  


正常啓動了,咱們來看下進程: ps -efH|grep python

root 26253 1 0 02:57 ? 00:00:00 /usr/bin/python /usr/bin/supervisord -c /root/supervisord.conf

lzz 26254 26253 0 02:57 ? 00:00:00 /usr/bin/python /home/lzz/lzztest/manage.py runserver 8000

lzz 26255 26254 1 02:57 ? 00:00:01 /usr/bin/python /home/lzz/lzztest/manage.py runserver 8000

終端關閉,從新打開別的終端能夠看到進程正常。實驗基本成功,後面進程之間關係,怎麼自動啓動和中止被控制的程序等之後在深刻研究下。

相關文章
相關標籤/搜索