linux进程监控工具supervisor

发布时间:2021-04-24 00:07:19 阅读:1089次

日常的项目需要,经常需要写shell脚本

然后nohup放入后台执行

为了防止进程挂掉还需要写一个进程监测脚本,为了让进程挂掉后能够重新启动,虽然很简单,但是有点繁琐,如果有多个类似的进程,则相当的不便

有没有比较科学的方法呢?比如能够统一的管理类似进程

我们可以通过进程监控工具supervisor来做到

什么是supervisor

superviosr是一个Linux/Unix系统上的进程监控工具,supervisor是一个Python开发的通用的进程管理程序,可以管理和监控Linux上面的进程,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启

supervisor管理进程的原理是什么?

通过fork/exec的方式把这些被管理的进程,当作supervisor的子进程来启动。这样的话,我们只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去就OK了。第二,被管理进程作为supervisor的子进程,当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,所以当然也就可以对挂掉的子进程进行自动重启,当然重启还是不重启,也要看你的配置文件里面有木有设置autostart=true了。

优点

统一管理

包括

supervisord
主进程,负责管理进程的server,它会根据配置文件创建指定数量的应用程序的子进程,管理子进程的整个生命周期,对crash的进程重启,对进程变化发送事件通知等。同时内置web server和XML-RPC Interface,轻松实现进程管理。。该服务的配置文件在/etc/supervisor/supervisord.conf。

supervisorctl
客户端的命令行工具,提供一个类似shell的操作接口,通过它你可以连接到不同的supervisord进程上来管理它们各自的子程序,命令通过UNIX socket或者TCP来和服务通讯。用户通过命令行发送消息给supervisord,可以查看进程状态,加载配置文件,启停进程,查看进程标准输出和错误输出,远程操作等。服务端也可以要求客户端提供身份验证之后才能进行操作。

下面我们在宝塔面板中来安装

安装完成后

我们在/home/www中创建while.sh

内容如下

#!/bin/bash
while (( 1 ))
do
 echo $(date +"%Y-%m-%d %H:%M:%S")
 sleep 1800
done

执行ps -aux|grep while.sh,发现脚本已经启动

这个时候我们kill掉这个进程,会发现进程再次被重新启动

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:linux进程监控工具supervisor 出自老鄢博客 | 欢迎分享