前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Supervisor进程守护监控

Supervisor进程守护监控

作者头像
崔哥
发布2022-05-25 20:38:27
4060
发布2022-05-25 20:38:27
举报
文章被收录于专栏:崔哥的专栏

应用场景

工作中可能要写一些cli脚本,需要后台运行,一般会用 nohup command &

代码语言:javascript
复制
nohup /usr/bin/php /www/test.php >> /var/log/test.log 2>&1 &

但这样会有一些问题,不能监控进程状态,异常退出时不能自动重启,这时候 supervisor 是更好的选择

注意:像nginx, mysql, php-fpm等,还是推荐系统级的systemctl

安装

代码语言:javascript
复制
#centos/redhat/fedora
yum install supervisor

#Debian/Ubuntu可通过apt安装
apt-get install supervisor

#pip安装
pip install supervisor

#easy_install安装
easy_install supervisor

#启动
supervisord -c /etc/supervisor/supervisord.conf

配置

新建一个脚本的配置文件

代码语言:javascript
复制
vi /etc/supervisor/conf.d/demo.conf
;demo表示程序名称
[program:demo]
;需要执行的命令
command=php demo.php
;命令执行的目录
directory=/var/www/demo/beanstalkd/demo0/
;环境变量
environment=PATH="/usr/local/bin/"
;哪个用户运行
user=root
;是否自启动
autostart=true
;是否自动重启
autorestart=true
;自动重启时间间隔,单位秒
startsecs=3
;错误日志文件
stderr_logfile=/tmp/demo.err.log
;输出日志文件
stdout_logfile=/tmp/demo.out.log

保存后reload一下,使生效
supervisorctl reload

脚本文件 demo.php

代码语言:javascript
复制
<?php

$i = 0;
while(true) {
    $i++;
    echo $i, PHP_EOL;
    sleep(1);
}

web界面

代码语言:javascript
复制
vi /etc/supervisor/supervisord.conf

;增加
[inet_http_server]
port=0.0.0.0:9001
username=admin
password=123456

保存后reload一下,使生效
supervisorctl reload

然后访问 http://localhost:9001/,即可看到如下界面
WX202109261643472x.png
WX202109261643472x.png

常用命令

代码语言:javascript
复制
#启动进程
supervisorctl start xxx
#重启进程
supervisorctl restart xxx
#重启所有属于名为group的分组进程
supervisorctl stop group
#停止全部进程
supervisorctl stop all
#载入最新配置的文件
supervisorctl reload
#根据最新的配置文件,启动新配置或有改动的进程
supervisorctl update
#查看日志文件
/var/log/supervisor
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 应用场景
  • 安装
  • 配置
  • web界面
  • 常用命令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档