Supervisor是用Python開發的一個client/server服務,是Linux/Unix系統下的一個進程管理工具,不支持Windows系統
它能將一個普通的命令行進程變爲後臺daemon,並監控進程狀態,異常退出時能自動重啓php
1、安裝html
一、可使用python的pip安裝 pip install supervisor 二、在mac下使用brew安裝 brew install supervisor 1)安裝事後在/usr/local/etc目錄下存在supervisord.ini配置文件。爲主配置文件,通常不用修改參數配置,具體參數值參考手冊:http://www.supervisord.org/configuration.html 2)在主配置文件最後一行:files = /usr/local/etc/supervisor.d/*.ini 表明子配置文件目錄,即咱們要監控的程序命令配置 3)啓動直接使用brew services start supervisor(linux其餘系統按照正常啓動便可)
2、應用配置python
一、子程序配置說明 #項目名 [program:redis] #腳本目錄 directory=/user/local/bin #腳本執行命令 command=php /usr/local/www/test.php #supervisor啓動的時候是否隨着同時啓動,默認True autostart=true #當程序exit的時候,這個program不會自動重啓,默認unexpected,設置子進程掛掉後自動重啓的狀況,有三個選項,false,unexpected和true。若是爲false的時候,不管什麼狀況下,都不會被從新啓動,若是爲unexpected,只有當進程的退出碼不在下面的exitcodes裏面定義的 autorestart=false #這個選項是子進程啓動多少秒以後,此時狀態若是是running,則咱們認爲啓動成功了。默認值爲1 startsecs=1 #腳本運行的用戶身份 user = test #日誌輸出 stderr_logfile= stdout_logfile= #把stderr重定向到stdout,默認 false redirect_stderr = true #stdout日誌文件大小,默認 50MB stdout_logfile_maxbytes = 20M #stdout日誌文件備份數 stdout_logfile_backups = 20
3、客戶端命令linux
#查看進程的狀態 supervisorctl status #中止進程 supervisorctl stop all || 進程名稱 #啓動進程 supervisorctl start all || 進程名稱 #重啓進程 supervisorctl restart all || 進程名稱 #從新加載配置文件啓動 supervisorctl update #重啓全部程序 supervisorctl reload supervisorctl爲客戶端命令 注意:直接使用supervisorctl可能會報錯(http://localhost:9001 refused connection),注意加上-c /usr/local/etc/supervisord.ini配置路徑。