1.supervisor是一款python开发的一个client/server服务,是一款进程管理工具,支持linux/unix系统,但是不支持windows系统。
它可以很方便的监听、启动、停止、重启一个或多个进程,当一个进程被意外杀死,supervisor可以立马启动进程,保证了服务
的稳定性。
ubuntu系列系统下
2.安装:apt-get install supervisor
3.配置:在目录:/etc/supervisor/conf.d 下添加 XXX.conf (XXX是你的app的名字)
[program:videoupload] #监听的服务的名字 command=python manage.pyc runserver 0.0.0.0:9999 #启动服务的命令 directory=/var/websync/weibo_video_upload/uploadmodule/ #服务运行的路径 environment=PYTHONPATH="$PYTHONPATH:/usr/local/lib" #服务运行的环境(我的是python站点) user=root #用哪个用户启动 stopsignal=INT #(进程停止信号,可以使用默认) autostart=true #(是否随supervisord启动一起启动,默认true) autorestart=true # (这个是设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的退 出码的时候,才会被自动重启。当为true的时候,只要子进程挂掉,将会被无条件的重启) startsecs=1 # (这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了默认值为1 。。非必须设置) stderr_logfile=/var/log/supervisorlog/videoupload.err.log # (这个东西是设置stderr写的日志路径,当redirect_stderr=true。这个就不用设置了,设置了也是白搭。因为它会被写入stdout_logfile的同一个文件中 默认为AUTO,也就是随便找个地存,supervisord重启被清空。。非必须设置) stdout_logfile=/var/log/supervisorlog/videoupload.out.log
4.操作命令:
(1)supervisorctl status //查看状态
(2)supervisorctl start web_server //开启一个进程
(3)supervisorctl stop web_server //停止一个进程
(4)supervisorctl restart web_server //重启一个进程
(5)supervisorctl reread //重新加载配置
(6)supervisorctl update //更新启动列表