首页 > 代码库 > Supervisor 的配置与使用

Supervisor 的配置与使用

环境:ubuntu 14.04 lts  http://supervisord.org/
liunx 下有很多守护进程的工具,如 nohup,screen,supervisor 等,supervisor 是用Python开发的进程管理程序,能将一个普通的命令行进程变为后台daemon,异常退出时能自动重启。
#安装
sudo apt-get install supervisor
#进程
/usr/bin/supervisord             --  supervisor服务守护进程
/usr/bin/supervisorctl           --  supervisor控制台进程
在/etc/supervisor目录中存放着supervisor的配置文件:其中conf.d是一个子目录,其中存放着supervisor监管的进程的配置信息,一个进程有一个对应的配置文件supervisord.conf是supervisor的主配置文件,定义服务名称以及接口等等。
#配置
现在要用supervisor监控一个脚本进程,在/etc/supervisor/conf.d中新建一个关于这个脚本进程的配置文件[我部署了python 与 golang的 web 程序]
cd /etc/supervisor/conf.d
touch gogs.conf stock.conf

[program:gogs]
command=/opt/gogs/scripts/start.sh
directory=/opt/gogs
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/gogs_supervisor_out.log
stderr_logfile=/var/log/supervisor/gogs__supervisor_err.log

[program:stockhq]
command=python3 __stockhq.py
directory=/opt/stockhq/data
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/stockhq_err.log
stdout_logfile=/var/log/stockhq_out.log

#保存
:qw
#启动服务
sudo service supervisor stop
sudo service supervisor start
#配置更改生效
supervisorctl update 或者用supervisorctl reload 重新重新启动supervisor程序
#查看状态
supervisorctl status
#停止所有gogs
supervisorctl stop all
#启动gogs
supervisorctl start gogs
#查看3000端口进程
lsof -i:3000
netstat -anl | grep "3000"
#查看某一端口是否开放
lsof -i:80
netstat -nupl  (UDP类型的端口)
netstat -ntpl  (TCP类型的端口)
# 查看进程
sudo ps -ef | grep supervisor
#杀死进程
kill -9 pid
#开启http的UI控制台
修改主配置文件
vim /etc/supervisor/supervisord.conf,添加如下内容:
[inet_http_server]
port = 0.0.0.0:9001 #IP和绑定端口
username = irving #管理员名称
password = 123456 #管理员密码
这样,在浏览器中输入配置中写的地址和端口号,输入配置好的用户名和密码,便可以看到基于网页的控制台
界面。从中,可以察看supervisor监控的>信息,可以察看进程的日志等。

服务器是否有外网可访问,配置一下你的web服务器启动监听0.0.0.0(而不是127.0.01)就可以。

Supervisor 的配置与使用