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命令)中所有的路径都要用绝对路径,即使在环境变量中,其它的参数问题不大。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223500.html原文链接:https://javaforall.net
