linux配置supervisor
阿新 • • 發佈:2019-01-07
linux配置supervisor
安裝
pip install supervisor
生成配置檔案
使用
echo_supervisord_conf > /etc/supervisord.conf
supervisord.ini配置檔案修改
cd /etc/supervisord.conf
vim supervisord.conf
下面兩行是該配置檔案的最後不用修改,這裡說下意思,表示的是/etc這個資料夾下.ini檔案就是要啟動的檔案。
[include]
files = /etc/supervisor/*.ini
建立程式配置檔案
下面就是需要執行的檔案的配置,這個檔案的位置是
/usr/local/etc/supervisor.d/spider.ini
command=/data/p2pSearch/start.sh # 程序名 process_name=%(program_name)s # 程序數 numprocs=1 # supervisor啟動的時候是否隨著同時啟動,預設True autostart=true # 當程式exit的時候,這個program不會自動重啟,預設unexpected # 設定子程序掛掉後自動重啟的情況,有三個選項,false,unexpected和true。如果為false的時候,無論什麼情況下,都不會被重新啟動,如果為unexpected,只有當程序的退出碼不在下面的exitcodes裡面定義的 autorestart=true # 這個選項是子程序啟動多少秒之後,此時狀態如果是running,則我們認為啟動成功了。預設值為1 startsecs=1 # 日誌輸出 stderr_logfile=/data/p2pSearch/logs/p2papp_err.log stdout_logfile=/data/p2pSearch/logs/p2papp_out.log #把 stderr 重定向到 stdout,預設 false redirect_stderr = false #stdout 日誌檔案大小,預設 50MB stdout_logfile_maxbytes = 1024MB stderr_logfile_maxbytes = 1024MB #stdout 日誌檔案備份數 stdout_logfile_backups = 10 stderr_logfile_backups = 10
因為用了virtualenv執行程式所以我用了一個shell指令碼,並給定讀的許可權
chmod 777 start.sh
start.sh內容如下
#! /bin/bash
cd /data/p2pSearch/
source p2p/bin/activate
python3 p2papp.py
執行
supervisord -c /etc/supervisord.conf
然後檢視任務
supervisorctl
如果報錯
supervisorctl error: <class 'socket.error'>, [Errno 13] Permission denied: file: /usr/lib64/python2.7/socket.py line: 224
檢視
ps -ef |grep supervisor
然後殺掉程序
sudo pkill -f supervisord
檢視任務
supervisorctl
重啟 可以看到任務狀態
[[email protected] supervisor]# supervisorctl
p2papp RUNNING pid 29931, uptime 0:00:09
表示成功了