web:supervisor 安装

文档:http://supervisord.org/introduction.html
supervisor 是什么我就不说了,下面就来说一下我一天半的安装踩坑之旅。
我是在 Ubuntu 系统上进行的安装,采用的是 apt-get 的方式:

sudo apt-get install supervisor

一、安装

1、使用上面的命令进行安装。
2、安装成功后你需要在终端进入到 /etc/supervisor 文件夹,然后输入 echo_supervisord_conf

ouer@ouer-virtual-machine:/etc/supervisor$ echo_supervisord_conf

然后正常情况下你应该会看到,控制台输出一堆内容(其实是supervisor的默认配置文件的内容)
然后再执行:

ouer@ouer-virtual-machine:/etc/supervisor$ echo_supervisord_conf > /etc/supervisor/supervisord.conf
如果出现没有权限的问题,可以使用这条命令
sudo su - root -c "echo_supervisord_conf > /etc/supervisor/supervisord.conf"

就是把配置文件(supervisord.conf)创建到 /etc/supervisor文件夹下。

3、使用这种方式创建的默认配置文件有些地方是需要更改的。
supervisord.pid 以及 supervisor.sock 是放在 /tmp 目录下,但是 /tmp 目录是存放临时文件,里面的文件是会被 Linux 系统删除的,一旦这些文件丢失,就无法再通过 supervisorctl 来执行 restart 和 stop 命令了。会报错。
因此:

[unix_http_server]
;file=/tmp/supervisor.sock   ; (the path to the socket file)
;修改为 /var/run 目录,避免被系统删除
file=/var/run/supervisor.sock   ; (the path to the socket file)
;chmod=0700                 ; socket file mode (default 0700)
;chown=nobody:nogroup       ; socket file uid:gid owner
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

;[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))
...

[supervisord]
;logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
;修改为 /var/log 目录,避免被系统删除
logfile=/var/log/supervisor/supervisord.log ; (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                ; (log level;default info; others: debug,warn,trace)
;pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
;修改为 /var/run 目录,避免被系统删除
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
...
;设置启动supervisord的用户,一般情况下不要轻易用root用户来启动,除非你真的确定要这么做
;user=chrism                 ; (default is current user, required if root)
...

[supervisorctl]
; 必须和'unix_http_server'里面的设定匹配
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
;修改为 /var/run 目录,避免被系统删除
serverurl=unix:///var/run/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
...

设置好配置文件后,应先创建上述配置文件中新增的文件夹。如果指定了启动用户 user,那么应注意相关文件的权限问题,包括日志文件,否则会出现没有权限的错误。

Error: Cannot open an HTTP server: socket.error reported errno.EACCES (13)

需要为刚才创建的文件夹赋予权限:

sudo chmod 777 /run
sudo chmod 777 /var/log

4、还有个 include 的问题:
其实你把自己的项目配置在默认配置文件中也可以,不过我可不想那么干。因此就的说到include。在默认的配置文件中include是被注释了的(;),首先你需要打开注释,然后配置你自己的配置文件的路径。

[include]
files = /etc/supervisord.d/*.ini 可以是.conf 或者 .ini

5、使用浏览器管理
supervisor 同时提供了通过浏览器来管理进程的方法,只需要打开下面代码的注释就可以了。(就是把前面的;删除)

;[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))

然后通过浏览器访问 127.0.0.1:9001 就会看到管理界面。

二、命令

supervisord : 启动supervisor
supervisorctl reload :修改完配置文件后重新启动supervisor
supervisorctl status :查看supervisor监管的进程状态
supervisorctl start 进程名 :启动XXX进程
supervisorctl stop 进程名 :停止XXX进程
supervisorctl stop all:停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl update:根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

参考博客:http://www.cnblogs.com/restran/p/4854623.html
参考博客:http://www.ttlsa.com/linux/using-supervisor-control-program/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

outer199

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值