用supervisor配置python进程,使python程序常驻系统

supervisor是一个Python开发的通用的进程管理程序,可以管理和监控Linux上面的进程,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启,但它不能管理原本就是daemon的进程。

supervisor的安装和管理都非常方便

根据自己程序的需求,记录一下配置过程。

我的程序使用Python写的TCP服务程序,也就是将某个端口作为某一个TCP服务然后让它一直运行于Linux后台

1.安装
pip install supervisor
2.生成配置文件

安装好以后,需要生成一份配置文件
直接复制下面命令即可

echo_supervisord_conf > /etc/supervisord.conf
3.打开并编辑上面的配置文件
vim /etc/supervisord.conf
4.去掉配置文件中需要配置部分左边的分号并写入相应的配置

示例:

[program:project_name]
directory = 工作目录
command = 脚本的启动命令
autostart = true
autorestart = true
user = loanward
stdout_logfile = /data/log/pro_stdout.log

1.project_name 必须是唯一的,否则将会出现错乱,
2.directory 填写你启动脚本时的工作目录,如果你使用脚本的绝对目录,那么directory可以不设置
3.command 是执行脚本的命令,supervisor会自动将其变为后台进程,
4.autostart 配置为True, supervisor 启动时,任务跟随启动
5.autorestart 配置为True, 进程不存在时会自动重启, 默认重启3次,想修改重启次数,可以配置startretries, 设置最多重启的次数
6.user 设置启动任务时所用的用户,supervisor 有必要使用root账号启动,这样才有权限配置其他启动账号
stdout_logfile 配置输出日志

5.启动配置
supervisord -c /etc/supervisord.conf
6.使用 supervisorctl 进行管理

supervisorctl 是 supervisord 的一个命令行客户端工具,使用supervisorctl可以遍历的对进程进行管理,支持的命令如下

supervisorctl status                         # 查看进程状态
supervisorctl stop project_name              # 终止某个进程
supervisorctl start project_name             # 启动某个进程
supervisorctl restart project_name           # 重启某个进程
supervisorctl reread                         # 更新配置,根据最新的配置启动程序,会启动已经运行的程序
supervisorctl update                         # 更新配置,重启配置有变化的进程,不会重启那些配置没有变化
7.注意

多配置1个program 就在supervisord.conf文件中多写1个[program:xxx]节点

配置完后要运行一次运行下面命令,让新的配置文件生效

supervisorctl reread                        
supervisorctl update  
supervisorctl startall

之后可以通过命令 supervisorctl status 查看当前运行程序的状态

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值