最开始使用 nohup + gunicorn 来管理项目的,现在想试下 supervisor
官方文档
http://supervisord.org/
1. 在你的系统里安装
apt install supervisor
这个时候会在你的系统中配置文件:
/etc/supervisor/supervisord.conf # 主配置
/etc/supervisor/conf.d # 子进程配置
2. 在你的python环境中安装
pip install supervisor
3. 常用命令
supervisorctl status //查看所有进程的状态
supervisorctl stop es //停止es
supervisorctl start es //启动es
supervisorctl restart //重启es
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl reload //重新启动配置中的所有程序
注意: 我第一步执行supervisorctl status, 报错
pkg_resources.DistributionNotFound: The 'supervisor==3.3.1' distribution was not found and is required by the application
然后我修改, /user/bin/supervisorctl 和 /user/bin/supervisorctl 中对supervisor的版本引用,修改成和python一样版本的。
4. 配置子进程
在/etc/supervisor/conf.d 中创建 test.conf
内容
[program:app] # 进程名字为 app
command=bash /var/lib/jenkins/workspace/ceshi/run.sh # 项目启动命令
directory=/var/lib/jenkins/workspace/ceshi # 工作空间
autostart=true # supervisor启动的时候是否随着同时启动,默认True
autorestart=true # 程序是否自动启动,
redirect_stderr=true # #把stderr重定向到stdout
stderr_logfile=/var/log/blog_stderr.log
stdout_logfile=/var/log/blog_stdout.log # 错误日志
5.启动
- 重启 supervisor , supervisorctl reload
- 启动进程, supervisorctl start app
- 查看状态, supervisorctl status
参考: https://www.jianshu.com/p/0b9054b33db3