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