使用supervisor 管理程序
阿新 • • 發佈:2018-12-02
Supervisord是用Python實現的一款非常實用的程序管理工具,類似於monit(關於monit見我的部落格:用monit監控系統關鍵程序),monit和supervisord的一個比較大的差異是supervisord管理的程序必須由supervisord來啟動,monit可以管理已經在執行的程式;supervisord還要求管理的程式是非daemon程式,supervisord會幫你把它轉成daemon程式,因此如果用supervisord來管理nginx的話,必須在nginx的配置檔案裡新增一行設定daemon off讓nginx以非daemon方式啟動。
安裝方式可以採用pip安裝,也可以使用easy_install或者apt-get。
使用apt-get比較簡單,系統級的配置都會自動處理好
apt-get安裝
apt-get install supervisor
安裝完成後配置檔案預設在/etc/supervisor
目錄下,其中supervisord.conf
是總的配置檔案conf.d
記憶體放每個管理程序的配置,一般配置如下
[program:dm_mysql-data2es_py] autorestart=true ;自動啟動 directory=/var/www/dmp/data-stream-program/ ;主目錄 command=/usr/bin/python3.5 /var/www/dmp/data-stream-program/dm_mysql-data2es_py.py ;執行命令 stdout_logfile_maxbytes = 20MB ;日誌大小 stdout_logfile_backups = 10 ;日誌備份數量 stdout_logfile = /opt/logs/dm_mysql-data2es_py.log ;日誌目錄
因為採用apt-get方式安裝所以可以使用systemctl管理spuervisor服務
systemctl status supervisor.service #檢視狀態
systemctl start supervisor.service #啟動
systemctl stop supervisor.service #停止
systemctl restart supervisor.service #重啟
至於supervisor管理的程序,可以使用supervisorctl
來管理
管理方式跟systemctl很類似
systemctl status # 檢視程式狀態 systemctl stop update_ip # 關閉 update_ip 程式 systemctl start update_ip # 啟動 update_ip 程式 systemctl restart update_ip # 重啟 update_ip 程式 systemctl reread # 讀取有更新(增加)的配置檔案,不會啟動新新增的程式 systemctl update # 重啟配置檔案修改過的程式
pip安裝方式參考這裡https://www.jianshu.com/p/bf2b3f4dec73