Linux进程守护—Supervisor(ubuntu)

为了服务持续文档,添加了一个守护进程,使用工具软件Supervisor实现,该工具依赖python环境。

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。


安装supervisor

执行命令:

apt install supervisor

等待supervisor安装完成
可以使用echo_supervisord_conf生成一些默认的配置文件,方便修改:

echo_supervisord_conf > /etc/supervisor/supervisord.conf

打开/etc/supervisor目录下的supervisord.conf文件,如下:前面的“;”是注释符

去掉下面配置项前面的“;”,启动supervisor服务后,就能通过http://ip:9001访问并管理配置的进程,方便运维

;[inet_http_server]         ; inet (TCP) server disabled by default
;port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

先看看通过启动后通过地址http://ip:9001的界面效果:

访问的时候需要用户名,密码,这个对应的就是配置文件中的username与password
配置管理进程。

如果我们需要管理的进程比较多的话,建议每个进程单独一个配置文件,然后在supervisord.conf文件中的[include]项增加对配置文件的引入。

因为我将所有进程的配置项都放在/etc/supervisor/config.d文件夹下,所以在[include]节点下增加下面这项即可

[include] 
files = /etc/supervisor/config.d/*.conf

比如我现在需要对mediaserver进程进行管理,我在/etc/supervisor/config.d文件夹下增加一个命名为mediaserver.conf文件

[program:hubconsumer]
user=myuser
directory=/home/myuser/DTrms.V2.HubConsumer
command= nohup dotnet ./DTrms.V2.HubConsumer.dll 2 &
autostart=true
autorestart=true
startretries=10
stdout_logfile=/home/myuser/DTrms.V2.HubConsumer/logs/hubconsumer.log
priority=1

里面定义内容如下:
启动Supervisor服务

执行命令:

supervisord -c /etc/supervisor/supervisord.conf
也可用

supervisorctl reload
重新加载配置文件

注意:此处安装和启动都是用的root权限,而配置中的用户是myuser用户权限。


常用指令

supervisorctl status查看状态
supervisorctl stop all 停止所有
supervisorctl start all 开始所有
supervisorctl update 如果有改配置文件,需要执行这个
supervisorctl reload 重新启动

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值