Supervisor详解
跑程序时无聊,写一篇博客
案例
- django网站部署
[program:lock]
command=/root/lock/venv/bin/python /root/lock/manage.py runserver 127.0.0.1:80 ; 被监控的进程路径
directory=/root/lock
autostart=true ; 随着supervisord的启动而启动
autorestart=true ; 自动重启,当然要选上了
startretries=10 ; 启动失败时的最多重试次数
exitcodes=0 ; 正常退出代码
stopsignal=KILL ; 用来杀死进程的信号
stopwaitsecs=10 ; 发送SIGKILL前的等待时间
redirect_stderr=true ; 重定向stderr到stdout
stdout_logfile=/root/log ; 指定日志文件
stopasgroup=true
killasgroup=true
- 普通进程
[program:proxy]
command=/usr/bin/proxy ; 被监控的进程路径
autostart=true ; 随着supervisord的启动而启动
autorestart=true ; 自动重启,当然要选上了
startretries=10 ; 启动失败时的最多重试次数
exitcodes=0 ; 正常退出代码
stopsignal=KILL ; 用来杀死进程的信号
stopwaitsecs=10 ; 发送SIGKILL前的等待时间
redirect_stderr=true ; 重定向stderr到stdout
stdout_logfile=/root/log ; 指定日志文件
stopasgroup=true
killasgroup=true
解析
从上面可以看出部署一个supervisor管理的进程是十分方便简单的,之后的事就交给supervisor处理了。这里的command(shell命令)中所有的路径都要用绝对路径,即使在环境变量中,其它的参数问题不大。