专栏首页Clive的技术分享配置supervisor管理beego应用

配置supervisor管理beego应用

一、golang、beego等环境安装与配置

二、supervisor安装

github项目地址:https://github.com/Supervisor/supervisor 克隆项目:git clone https://github.com/Supervisor/supervisor.git 进入项目:cd supervisor 安装执行:python setup.py install

三、supervisor配置文件

官方文档-配置部分 vi /etc/supervisord.conf

[supervisord]
http_port=/var/tmp/supervisor.sock ; (default is to run a UNIX domain socket server)
;http_port=127.0.0.1:9001  ; (alternately, ip_address:port specifies AF_INET)
;sockchmod=0700              ; AF_UNIX socketmode (AF_INET ignore, default 0700)
;sockchown=nobody.nogroup     ; AF_UNIX socket uid.gid owner (AF_INET ignores)
;umask=022                   ; (process file creation umask;default 022)
logfile=/var/log/supervisor/supervisord.log ; (supervisor输出日志,main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (logging level;default info; others: debug,warn)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false              ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)

;nocleanup=true              ; (don't clean up tempfiles at start;default false)
;http_username=user          ; (default is no username (open system))
;http_password=123           ; (default is no password (open system))
;childlogdir=/tmp            ; ('AUTO' child log dir, default $TEMP)
;user=chrism                 ; (default is current user, required if root)
;directory=/tmp              ; (default is not to cd during start)
;environment=KEY=value       ; (key value pairs to add to environment)

[supervisorctl]
serverurl=unix:///var/tmp/supervisor.sock ; use a unix:// URL  for a unix socket
;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
;username=chris              ; should be same as http_username if set
;password=123                ; should be same as http_password if set
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")

[unix_http_server]
file=/var/tmp/supervisor.sock   ; (the path to the socket file)
;chmod=0777                 ; socket file mode (default 0700)
;chown=root:root       ; socket file uid:gid owner
;username=root              ; (default is no username (open server))
;password=root               ; (default is no password (open server))

[inet_http_server]
port = 127.0.0.1:9001

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[program:hello] ;可以在这边配置要管理的程序
directory=/home/www/php/ ;
command=/usr/bin/php test.php ;
process_name=%(program_name)s ;
numprocs=1 ;
autostart=true ;
startsecs=1 ;
autorestart=true ;
startretries=3 ;
user=root ;
redirect_stderr=true ;
stdout_logfile_maxbytes=20MB ;
stdout_logfile_backups=10 ;

[include] ;也可以通过include包含进来程序配置文件
files = ./supervisor/conf.d/*.ini ;

vi /etc/supervisor/conf.d/wx-prj.ini

[program:wx-prj]
;directory=/home/www/go/src/wx-prj ;go项目目录
;command=/home/www/go/src/wx-prj/wx-prj ;go项目编译好的可执行文件
directory=/home/www/go/bin ;
command=/home/www/go/bin/wx-prj ;
process_name=%(program_name)s ;
numprocs=1 ;
autostart=true ;
startsecs=1 ;
autorestart=true ;
startretries=3 ;
user=root ;
redirect_stderr=true ;
stdout_logfile=/home/www/go/wx-prj.stdout.log ;打印标准输出日志
stdout_logfile_maxbytes=20MB ;
stdout_logfile_backups=10 ;
stderr_logfile=/home/www/go/wx-prj.stderr.log ;打印标准错误输出日志
stderr_logfile_maxbytes=20MB ;
stderr_logfile_backups=10 ;
log_stdout=true             ; if true, log program stdout (default true)
log_stderr=true             ; if true, log program stderr (def false)

四、启动supervisor服务

supervisord -c /etc/supervisord.conf
启动服务时可以跟踪日志输出观察
[root@10-23-67-69 go]# tail -f  /var/log/supervisor/supervisord.log
2018-10-26 13:36:30,881 INFO Included extra file "/etc/./supervisor/conf.d/wx-prj.ini" during parsing
2018-10-26 13:36:30,902 INFO RPC interface 'supervisor' initialized
2018-10-26 13:36:30,902 CRIT Server 'inet_http_server' running without any HTTP authentication checking
2018-10-26 13:36:31,203 INFO RPC interface 'supervisor' initialized
2018-10-26 13:36:31,203 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2018-10-26 13:36:31,206 INFO daemonizing the supervisord process
2018-10-26 13:36:31,207 INFO supervisord started with pid 17040
2018-10-26 13:36:32,209 INFO spawned: 'hello' with pid 17041
2018-10-26 13:36:32,213 INFO spawned: 'wx-prj' with pid 17042
2018-10-26 13:36:32,219 INFO spawned: 'world' with pid 17043
2018-10-26 13:36:33,279 INFO success: hello entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-10-26 13:36:33,279 INFO success: wx-prj entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-10-26 13:36:33,279 INFO success: world entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
也通过命令查看程序状态
[root@10-23-67-69 conf.d]# supervisorctl status
hello                            RUNNING   pid 17041, uptime 0:00:19
world                            RUNNING   pid 17043, uptime 0:00:19
wx-prj                           RUNNING   pid 17042, uptime 0:00:19

五、重载supervisor修改过的配置

supervisorctl reload

六、停止/启动/重启supervisor管理的程序

[root@10-23-67-69 conf.d]# supervisorctl stop wx-prj
wx-prj: stopped
[root@10-23-67-69 conf.d]# supervisorctl start wx-prj
wx-prj: started
[root@10-23-67-69 conf.d]# supervisorctl restart wx-prj
wx-prj: stopped
wx-prj: started
[root@10-23-67-69 conf.d]# supervisorctl stop all
hello: stopped
wx-prj: stopped
world: stopped
[root@10-23-67-69 conf.d]# supervisorctl start all
hello: started
wx-prj: started
world: started

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP中session和cookie的原理及优缺点SessionCookieCookie和Session的区别和联系

    Session Session的机制 session机制采用的是在服务器端保持状态的方案,并且有自己对应的唯一标识session_id,区分不同用户之前的信息。...

    Clive
  • cgi、fastcgi及php-fpm分别是什么cgifastcgiphp-fpm

    cgi cgi是通用网关接口定义。当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。接下来PHP解析器会...

    Clive
  • Memcached内存机制Memcached特点内存分配机制 - SlabAllocation内存使用机制 - LRU(Least Recently Used)优化思路

    Memcached特点 协议简单,基于文本行的协议 基于Libevent的时间处理 内置内存存储方式 分布式缓存服务器(采用一致性哈希算法实现的客户端分布式,而...

    Clive
  • 腾讯云黑石TStack一体机柜斩获2019数博会领先科技成果双重“优秀项目奖”

    ? 5月26日,2019年中国国际大数据产业博览会在贵阳召开,腾讯云黑石TStack一体机柜及其解决方案,分别获得了2019数博会领先科技成果奖中的产品“优秀...

    腾讯技术工程官方号
  • 模拟京东商城实现导航条隐藏功能

    小蠢驴打代码
  • 《深入理解Spark-核心思想与源码分析》读书笔记(2)

    第四章 存储体系 这章主要讲的就是如何存储,包括存内存,存硬盘,还有存Tachyon ? 这个图写画得灰常好,下面是对其中序号的解释。 1)...

    用户1148523
  • HTML & CSS 知识点梳理(内涵大量Demo噢~)

    1.<html>标记 <html>标记是HTML文件的开头。所有HTML文件都是以<html>标记开头,以</html>标记结束,HTML页面的所有标记都要放...

    凌川江雪
  • Openlayers2中vector扩展FeatureLayer

    在Arcgis for js中,有一个图层FeatureLayer,能够很方便的实现点、线、面的高亮。FeatureLayer是GraphicsLayer图层的...

    lzugis
  • 65-偏函数基础应用

    偏函数可以理解为,将现有函数的某些参数固定下来,构造成一个新函数。新函数调用就不用写那么多参数了。

    凯茜的老爸
  • 1.Sentinel源码分析—FlowRuleManager加载规则做了什么?

    最近我很好奇在RPC中限流熔断降级要怎么做,hystrix已经1年多没有更新了,感觉要被遗弃的感觉,那么我就把眼光聚焦到了阿里的Sentinel,顺便学习一下阿...

    luozhiyun

扫码关注云+社区

领取腾讯云代金券