supervisor用於linux系統中的后台管理, 需要注意的是, supervisor可以用於python2.4+環境,但是不適用於任何python3.x環境。
supervisor的配置文件在官方文檔中有詳細說明,配置文件中以;標識注釋塊。 配置文件格式滿足python parseconfig模塊的格式要求。 這里主要一些自己比較感興趣的配置模塊:
1. iner_http_server模塊可以設置supervisor的web服務模塊,可以通過網頁來對進程進行管理。
[iner_http_server]
port=0.0.0.0:9001
username=test
password=test
2. [program:test]一般單獨放在xxx.conf文件中,並防止在/etc/supervisor/conf.d/文件夾中,這個可以參見/etc/supervisor/supervisord.conf中的files設定
[program: test]
command=xxxxxxxx ;如果有多條命令,可以寫入shell腳本再在這里調用
directory=xxxxx ;執行命令是切換到的目錄
user=xxxx ;執行命令所用的linux用戶身份
autorestart=true ;是否自動重啟
autostart=true ;啟動supervisor時是否自行啟動該程序
redirect_stderr=true ;如果為true則將stderr發送到stdout相應的log文件中去
stdout_logfile=/path/to/logfile ;制定stdout的輸出文件
stdout_logfile_maxbytes=10MB ;限定logfile的大小, 默認為50M
stdout_logfile_backups=10 ;保存logfile的最大數目,如果操作這個數目則對最早的logfile進行覆蓋,默認為10
environment=A="1", B="2" ;設置環境變量,這里可以保存運行程序需要的參數
如果所用的python是在虛擬環境中,則通過which python獲取python命令的全名進行使用即可.
修改完配置文件后需要重新加載和重啟服務:
2 sudo supervisorctl reload
3 sudo supervisorctl start app # 如果沒有設置自動啟動