随笔 - 48,  文章 - 2,  评论 - 5,  阅读 - 84281

场景:起了多个不同的python服务,不方便统一管理,且存在某些进程莫名其妙死掉的情况,到网上搜了一下,发现可以用supervisor来实现统一管理,

这样只要启动supervisord即可。

参考地址:http://www.supervisord.org/introduction.html

运行环境: mac os x, linux centos7

操作步骤:

1、安装

pip install supervisor

2、编辑配置文件supervisor.conf

自己找一个目录,创建并编辑一个*.conf配置文件(参考默认的supervisor.conf文件内容),主要编辑内容如下:

复制代码
[program:wordFilter-8882]
command=python /Users/pattywgm/Projects/words_filter_server.py --port=8882
autostart=true                ; supervisord守护程序启动时自动启动
autorestart=true              ; supervisord守护程序重启时自动重启
redirect_stderr=true          ; 将stderr重定向到stdout
stdout_logfile = /Users/pattywgm/Projects/wordsFilter-8882.log

[program:wordFilter-8883]
command=python /Users/pattywgm/Projects/words_filter_server.py --port=8883
autostart=true                ; supervisord守护程序启动时自动启动
autorestart=true              ; supervisord守护程序重启时自动重启
redirect_stderr=true          ; 将stderr重定向到stdout
stdout_logfile = /Users/pattywgm/Projects/wordsFilter-8883.log
复制代码

保存后运行:/usr/local/bin/supervisord -c supervisord.conf  启动supervisord,-c用于指定配置文件路径

3、新增待管理的进程

在supercisor.conf文件中加入待管理的进程启动命令,然后运行

/usr/local/bin/supervisorctl reload 即可重新加载配置文件,并按新的配置文件启动进程

 

4、其他命令

  • supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:wordFilter-8883]里配置的值,这个示例就是wordFilter-8883。
  • supervisorctl start programxxx,启动某个进程
  • supervisorctl restart programxxx,重启某个进程
  • supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
 
posted on 2017-03-25 15:19  pattywgm  阅读(367)  评论(0)    收藏  举报
编辑推荐:
· 记一次.NET MAUI项目中绑定Android库实现硬件控制的开发经历
· 糊涂啊!这个需求居然没想到用时间轮来解决
· 浅谈为什么我讨厌分布式事务
· 在 .NET 中使用内存映射文件构建高性能的进程间通信队列
· 一个 java 空指针异常的解决过程
阅读排行:
· 干翻 Typora!MilkUp:完全免费的桌面端 Markdown 编辑器!
· 那些年我们一起追过的Java技术,现在真的别再追了!
· 记一次.NET MAUI项目中绑定Android库实现硬件控制的开发经历
· 从WebApi迁移到Minimal API?有了这个神器,小白也能10分钟搞定!
· 抛开官方库,手撸一个轻量级 MCP 服务端

< 2025年7月 >
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9
点击右上角即可分享
微信分享提示