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

更新时间:2020-12-06    来源:J2EE/EJB/服务器    手机版     字体:

【www.bbyears.com--J2EE/EJB/服务器】

      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,输入用户名和密码,可以看此进程,可以对每个进程进行停止,重启和刷新操作。

本文来源:http://www.bbyears.com/jsp/114900.html