supervisor php cli,php使用supervisor管理进程脚本

supervisor是用python开发的一个在linux系统下的进程管理工具,可以方便的监听,启动,停止一个或多个进程。当一个进程被意外杀死后,supervisor监听到后,会自动重新拉起进程。

一、supervisor的安装

1、通过easy_install安装

yum -y install python-setuptools

easy_install supervisor

2、通过yum安装

yum -y install supervisor

3、通过pip安装

yum -y install epel-release

yum -y install python-pip

pip install supervisor

安装好后,会生成三个执行命令,echo_supervisord_conf,supervisorctl,supervisord。

二、supervisor的配置文件

supervisor的默认配置文件在 /etc/supervisord.conf 下,如果没有可以通过如下命令生成

echo_supervisord_conf > /etc/supervisord.conf

常用的配置项如下:

[unix_http_server]

file=/tmp/supervisor.sock ; unix socket文件,supervisorctl会使用

;chmod=0700 ; socket文件权限

;chown=nobody:nogroup ; socket文件所属用户和用户组

[inet_http_server] ; web管理界面

port=127.0.0.1:9001 ; 管理界面的IP和端口

username=admin ; 登陆管理界面的用户名

password=123456 ; 登陆管理界面的密码

[supervisord]

logfile=/tmp/supervisord.log ; 日志文件

logfile_maxbytes=50MB ; 日志文件大小,为0表示不限制

logfile_backups=10 ; 日志文件备份数量,为0表示不备份

loglevel=info ; 日志级别,也可设置为 debug,warn,trace

pidfile=/tmp/supervisord.pid ; PID文件路径

nodaemon=false ; 是否前台启动,为false表示守护进程方式

minfds=1024 ; 打开文件描述符的最小值

minprocs=200 ; 创建进程数的最小值

[supervisorctl]

serverurl=unix:///tmp/supervisor.sock ; 通过 unix sokcet 连接supervisord

;serverurl=http://127.0.0.1:9001 ; 通过http方式连接supervisord

[include]

files = /etc/supervisord/confs/*.conf ; 包含其他配置文件,可以是.conf或.ini

我们需要把 [include] 前面的注释打开,并配置 files 的路径。

创建 files 中配置的目录。

mkdir -p /etc/supervisord/confs/

三、配置一个php脚本进程

我们在 /etc/supervisord/confs/ 目录下创建一个 demo.conf 文件。

;demo表示程序名称

[program:demo]

;需要执行的命令

command=php demo.php

;命令执行的目录

directory=/data/wwwroot

;环境变量

environment=PATH="/data/nmp/php/bin/"

;哪个用户运行

user=root

;是否自启动

autostart=true

;是否自动重启

autorestart=true

;自动重启时间间隔,单位秒

startsecs=3

;错误日志文件

stderr_logfile=/tmp/demo.err.log

;输出日志文件

stdout_logfile=/tmp/demo.out.log

demo.php的代码如下:

$i = 0;

while(true) {

$i++;

echo $i, PHP_EOL;

sleep(1);

}

四、管理进程。

管理进程,需要我们启动 supervisor 服务,这里我们配置 systemctl,开机自动启动 supervisor。

创建 /usr/lib/systemd/system/supervisord.service 文件,配置如下:

[Unit]

Description=Supervisor daemon

[Service]

Type=forking

ExecStart=/usr/bin/supervisord

ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown

ExecReload=/usr/bin/supervisorctl $OPTIONS reload

KillMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

启用配置

systemctl enable supervisord.service

启动 supervisord

systemctl start supervisord.service

成功后,就可以通过 supervisorctl 交互命令管理进程脚本了。

读取有更新的配置文件

supervisorctl reread

更新配置文件修改过的程序

supervisorctl update

如果修改过 /etc/supervisord.conf 请使用如下命令

supervisorctl reload

启动,停止,重启,程序。

supervisorctl start 程序名

supervisorctl stop 程序名

supervisorctl restart 程序名

五、supervisor图形化管理界面

需要开启 /etc/supervisord.conf 文件中的 [inet_http_server]

[inet_http_server]

port=0.0.0.0:9001

username=admin

password=123456

设置完后,要开放 9001 端口,并重启 supervisor

firewall-cmd --zone=public --add-port=9001/tcp --permanent

firewall-cmd --reload

重启 supervisor

supervisorctl reload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着人口老龄化和空巢化等社会问题的日益严峻,养老问题及以及养老方式的变革成为了当前社会的发展焦点,传统的养老模式以救助型和独立型为主,社会养老的服务质量与老年人的养老需求还存在一定的差距,人们生活水平的提高以及养老多元化需求的增加都需要通过创新和灵活开放的养老模式来应对未来的养老需求,结合目前我国养老模式及养老服务问题的内容的分析,互助养老模式作为一种新型的养老模式结合自主互助的集体养老理念,帮助老年人实现了满足个性需求的养老方案,互助养老模式让老年人具备了双重角色的同时也实现可持续的发展特色。目前我国老年人的占比以每年5%的速度在飞速增长,养老问题及养老服务的提供已经无法满足当前社会养老的切实需求,在养老服务质量和养老产品的变革过程中需要集合多元化的养老模式来满足更多老人的养老需求。 鉴于我国目前人口老龄化的现状以及迅速扩张的养老服务需求,现有的养老模式已经无法应对和满足社会发展的需求,快速增长的养老人员以及养老服务供给不足造成了紧张的社会关系,本文结合当前养老服务的发展需求,利用SSM框架以及JSP技术开发设计一款正对在线互助养老的系统,通过系统平台实现养老机构信息的传递及线上预约,搭建了起了用户、养老机构以及系统管理员的三方数据平台,借助网页端实现在线的养老互助信息查询、养老机构在线预约以及求助需求等功能,通过自养互养的养老模式来帮助老年人重新发现自我价值以及丰富养老的主观能动性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值