supervisor是一款很好用的進程管理工具,其命令也很簡單,其安裝過程如下:
Ubuntu14:
首先保證本地的Python環境是OK的,並且已經安裝supervisor包,如果沒有安裝可以用easy_install:
easy_install supervisor
接下來安裝supervisor:
apt-get install supervisor
安裝好之后,不出問題的話supervisor服務已經啟動完成。
supervisor管理進程的配置文件,這里就簡單舉例:
[program:task] #管理進程的命名 command=python test.py -c test.conf #執行的命令 stderr_logfile=/var/log/supervisor/test.log #錯誤日志輸出路徑 stdout_logfile=/var/log/supervisor/test.log #日志輸出路徑 directory=/root/test #命令執行的工作空間 autostart=true #自動啟動 user=root #指定用戶 autorestart=true #自動重啟
進程配置文件配好之后,然后執行:
supervisorctl reload
至此配置基本完成,進程也啟動起來了。
supervisor有supervisord和supervisorctl兩種命令類型,supervisord是服務相關的命令,supervisorctl是客戶端相關的命令,它們的使用方法很簡單.
常見報錯:
1,
Traceback (most recent call last): File "/usr/local/bin/supervisorctl", line 7, in <module> from supervisor.supervisorctl import main File "/usr/local/lib/python2.7/dist-packages/supervisor/supervisorctl.py", line 36, in <module> from supervisor.options import ClientOptions File "/usr/local/lib/python2.7/dist-packages/supervisor/options.py", line 26, in <module> from supervisor.datatypes import process_or_group_name ImportError: cannot import name process_or_group_name #這是在執行supervisor相關命令報的錯,基本可以看出是安裝的問題 #解決方式 easy_install supervisor
2,
root@ubuntu:~# supervisorctl unix:///var/run/supervisor.sock no such file supervisor> #這有可能是由於supervisor服務沒有啟動 #解決辦法 service supervisor start
3,
error: <class ‘socket.error’>, [Errno 2] No such file or directory: file:/usr/lib/python2.7/socket.py line: 224 #錯誤原因可能是 supervisor 服務未啟動 #解決辦法 service supervisor start #也有可能是配置文件中沒有指定用戶 #解決辦法 進入/etc/supervisor/conf.d 找到指定的配置文件,加入 user=root