开源中文网

您的位置: 首页 > Linux服务器 > 正文

使用supervisord监控php脚本状态配置

来源: 网络整理  作者: 佚名

Supervisor是一个客户/服务器系统,它可以在类Unix系统中管理控制大量进程。Supervisor使用python开发,有多年历史,目前很多生产环境下的服务器都在使用Supervisor。

 

      Supervisor的服务器端称为supervisord,主要负责在启动自身时启动管理的子进程,响应客户端的命令,重启崩溃或退出的子进程,记录子进程stdout和stderr输出,生成和处理子进程生命周期中的事件。可以在一个配置文件中配置相关参数,包括Supervisord自身的状态,其管理的各个子进程的相关属性。配置文件一般位于/etc/supervisord.conf。

      Supervisor的客户端称为supervisorctl,它提供了一个类shell的接口(即命令行)来使用supervisord服务端提供的功能。通过supervisorctl,用户可以连接到supervisord服务器进程,获得服务器进程控制的子进程的状态,启动和停止子进程,获得正在运行的进程列表。客户端通过Unix域套接字或者TCP套接字与服务端进行通信,服务器端具有身份凭证认证机制,可以有效提升安全性。当客户端和服务器位于同一台机器上时,客户端与服务器共用同一个配置文件/etc/supervisord.conf,通过不同标签来区分两者的配置。

      Supervisor也提供了一个web页面来查看和管理进程状态,这个功能用得人比较少。

官网:http://www.supervisord.org

一、安装supervisord

$brew install supervisord

在mac下安装要比linux下安装方便的多。

二、配置

修改/usr/local/etc/supervisord.ini文件,取消以下几行注释

[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))

这样就可以通过浏览器对进行管理了。

三、添加一个新应用

创建一个a.php文件,内容如下:

while(true){
echo 'a' . time() . "\r\n";
sleep(1);
}

然后在supervisord.ini文件中添加以下几行:

[program:php]
command=php /Users/sxf/web/a.php
autostart=true
autorestart=true
startsecs=1
startretries=3
redirect_stderr=true
stdout_logfile=/Users/sxf/web/supervisord.log
stderr_logfile=/Users/sxf/web/stderr.log

重启supervisord。

$brew services restart supervisord
打开浏览器http://127.0.0.9001,输入用户名和密码,可以看此进程,可以对每个进程进行停止,重启和刷新操作。

Tags:脚本 状态
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明