守护进程是什么(守护进程失败怎么办)
导语:守护进程太多?维护太麻烦?试试Supervisor进程管理
开发项目,免不了要使用一些守护进程来执行一些定时、耗时的任务。数量少、有权限时,一个个处理没有太大问题,也就是几个命令的事。但当数量变多或需要控制权限时,再这样操作就不太合适了。此时,最好是有一个工具可以帮你来管理这些守护进程。
Supervisor就是这样一款Linux进程管理工具,它由Python开发,主要用于在后台维护进程(类似master守护进程)。Supervisor可以实现监控进程的状态,自动重启进程等操作,非常方便服务的维护与监控。
Supervisor主要由以下两部分组成:
1、supervisord
这是Supervisor的服务端,当我们启动Supervisor时,首先会有一个supervisord进程,称为父进程,它所管理的进程是它的子进程。supervisord进程负责统一管理这些子进程的启动、重启、停止。从某种角度上看,有点NGINX的master与worker的感觉。
2、supervisorctl
这是Supervisor的客户都安,它是一个命令行管理工具,输入某些命令,如:start、stop、restart等,就可以对指定的进程进行相应的操作。
下面我们来介绍下Supervisor的安装和配置。
安装
安装Supervisor很简单,既可以使用pip命令,也可以使用yum命令,如下:
pip install supervisor
或者
yum install supervisor
需要说明的是,Supervisor是由Python开发的,因此在安装supervisor前要确保你已安装了Python。
配置
默认安装好的Supervisor是无法启动的,需要调整一些配置才行。默认Supervisor的配置文件是没有的,需要我们自己创建。我们可以找一个目录,如/etc/supervisor,通过执行如下命令来生成配置文件:
echo_supervisord_conf > /etc/supervisor/supervisord.conf
打开/etc/supervisor/supervisord.conf配置文件,内容如下:
这里的配置包括两部分:master进程的配置和worker进程配置。master进程的配置控制supervisor,worker进程的配置控制守护进程。
如上图所示,我们已经介绍了每个参数的作用。其中红色文字说明的部分是我们需要改动的部分,第一部分设置了supervisor管理页面的访问地址和访问账户,第二部分指定了worker进程配置文件的目录。
如下是worker进程配置文件内的配置参数,相关的作用已在图中标识。这里没有指定需要开启的worker进程数,默认为1,如果需要调整,你可以增加一个numprocs参数,numprocs参数用来指定worker进程数。
启动
配置文件配置好后,我们就可以启动Supervisor了。启动Supervisor需要指定配置文件,如下:
supervisord -c /etc/supervisor/supervisord.conf
Supervisor启动后,你就可以通过配置文件中第一部分配置的IP地址和端口访问Supervisor管理页面了,如下:
从图中我们可以看到,通过Supervisor管理页面,我们不仅可以启动、重启、停止进程,同时还可以查看进程的状态及相关的执行日志。相对于直接操作服务器是不是要更加清晰明白多了。
本文内容由小姿整理编辑!