最近使用supervisor部署爬蟲,百度了很多,磕磕絆絆自己也算是用起來了,以下是整理的使用情況.
第一步:
下載安裝supervisor
使用的ubuntu16.04,直接
sudo apt-get install supervisor
由於權限老是不夠,習慣加sudo~
也可以 pip install supervisor
第二步:
生成初始配置文件,文件名為supervisord.conf
echo_supervisord_conf > /etc/supervisord.conf
這一步,出現了Permission denied,在命令前面加上sudo,仍然出現權限問題,使用su轉到root用戶
我配置了幾次,都只有root用戶可以執行.后來查了一下文檔才發現,一定要有root權限才可以.
第三步:
配置我的進程,假設我有一個爬蟲程序需要運行,執行以下命令
vim /etc/supervisor/conf.d/crawler.conf
crawler是我起的名字,也可以是其他的
crawler.conf需要自己配置,我的簡單的配置如下
[program:app] # app是需要管理的進程的名字 command=python mycrawler.py # 需要執行的命令 directory=/home/masako/mycrawler # 執行目錄 user=masako # 用戶名 autostart=true # 設置自動開啟,開啟supervisor時進程就開啟了 autorestart=true # 設置自動重啟,進程終止后自動重啟 logfile=/home/masako/crawler.log # 指定日志文件
主要是前三個參數:command,directory和user,后面可以不加,自己替換對應參數即可使用
注意,要使配置文件生效,需要將自己的配置文件路徑包含到supervisor的配置當中.
修改 /etc/supervisord.conf
在其中添加:
[include]
files = /etc/supervisor/conf.d/*.conf
第四步:
開啟我的進程
sudo supervisorctl start app
app是第三步中的program后面的名字
這個時候可能會出現
unix:///var/supervisor.sock no such file
說明你的supervisor服務沒有開啟,或者經過配置需要重啟,於是有下一步
第五步:
supervisorctl 重新載入:
sudo supervisorctl reload
執行完這一步,成功的話會發現,自己配置的進程已經開啟了
可以使用第四步中的命令嘗試一下,會報錯start app error
這個是因為設置了自動開啟:autostart和自動重啟:autorestart
沒設置這兩個參數,需要手動再次執行第四步.
也可以先讓 supervisorctl 更新配置文件:
sudo supervisorctl update
再執行第四步,開啟進程.
第六步:
停止進程:
sudo supervisorctl stop app
關於守護進程supervisorcd
supervisorcd 服務開啟命令:
sudo /etc/init.d/supervisor start
有的是 sudo /etc/init.d/supervisord start
由於我本地執行/etc/init.d/supervisord start老是找不到命令,自己去目錄中看了一下,發現命令是supervisor,沒有d...
這個可以根據本地的情況查看
停止使用stop