1. 程式人生 > >linux配置supervisor

linux配置supervisor

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

表示成功了