博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php使用supervisor管理进程脚本
阅读量:6721 次
发布时间:2019-06-25

本文共 2946 字,大约阅读时间需要 9 分钟。

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

一、supervisor的安装

1、通过easy_install安装

yum -y install python-setuptoolseasy_install supervisor

2、通过yum安装

yum -y install supervisor

3、通过pip安装

yum -y install epel-releaseyum -y install python-pippip 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,tracepidfile=/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的代码如下:

  

四、管理进程。

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

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

[Unit]Description=Supervisor daemon[Service]Type=forkingExecStart=/usr/bin/supervisordExecStop=/usr/bin/supervisorctl $OPTIONS shutdownExecReload=/usr/bin/supervisorctl $OPTIONS reloadKillMode=processRestart=on-failureRestartSec=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:9001username=adminpassword=123456

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

firewall-cmd --zone=public --add-port=9001/tcp --permanentfirewall-cmd --reload

重启 supervisor

supervisorctl reload

  

转载于:https://www.cnblogs.com/jkko123/p/10846038.html

你可能感兴趣的文章
自动化1
查看>>
Jenkins 2.32.3参数化构建maven项目
查看>>
使用Oracle存储过程批量生成测试数据
查看>>
正则表达式 - ×××
查看>>
Target runtime Apache Tomcat v6.0 is not defined
查看>>
.net密码找回
查看>>
安装mysql遇到的问题
查看>>
我的友情链接
查看>>
大道至简--GoEasy推送
查看>>
免费邮箱服务器(收藏)
查看>>
org.aspectj.lang.JoinPoint-中文简要API
查看>>
数据库内存使用
查看>>
shell-9-函数(tc与限速实例)
查看>>
[战略]Fans未来战略--第4篇--2012年的IT技术学习规划
查看>>
Linux入门之一:LInux系统环境及命令使用
查看>>
android 获得已安装应用
查看>>
REAPER Audio May Be Coming To Linux(专业的音频工作站)
查看>>
jquery 定位
查看>>
幻日奇观 黑龙江现“三个太阳”
查看>>
“可视化”人工神经网络揭示细胞内部活动
查看>>