Supervisor快速上手指南(转)
原文:http://maemual.me/index.php/archives/8/
Supervisor
是一个进程控制程序。用于监控管理你需要的程序。
当你有一个程序,需要长期在后台运行,并且希望能够在这个程序崩溃之后自动重新启动的时候,你就需要Supervisor
了。
安装
sudo apt-get install supervisor
配置
Supervisor
的配置文件在/etc/supervisor/supervisor.conf
。但是通常我们并不需要修改Supervisor
的配置文件。我们需要增加我们需要监管的程序。
在/etc/supervisor/conf.d
下创建我们自己的配置。例如前面博文里面提到的shadowsocks,创建/etc/supervisor/conf.d/shadowsocks.conf
配置文件,使用最简单的格式如下:
[program:shadowsocks]
command=ssserver -c /etc/shadowsocks.json
autorestart=true
user=nobody
第一行表示程序的名字,第二行command
表示运行某程序的命令,第三行表示自动重启,第四行的user
表示以什么身份运行该程序。
当然还有很多有用的参数,如autostart
表示该程序是否随着supervisor的启动而启动。详情可见官方文档
运行
Supervisor
在运行时有两个进程,supervisord
和supervisorctl
。其中前者是后台的守护进程,也是主进程。后者是用来让管理人员和守护进程交互的程序。
supervisord
的启动停止可以使用以下管理:
sudo service supervisor start
sudo service supervisor restart
sudo service supervisor stop
使用这种方式运行,supervisor
会默认读取/etc/supervisor
下面的配置文件。
管理
supervisorctl status
查看当前所有程序的运行状态。status
后面可以加上具体某个程序的名字来看其状态。
supervisorctl start xxx
启动xxx
程序。如果xxx是all
的话,表明启动所有程序。
supervisorctl restart xxx
以上同理
supervisorctl stop xxx
以上同理
supervisorctl reload
重新加载配置。原来正在运行的程序会全部重启。
supervisorctl update
加载新的配置,原来正在运行的程序不会重启。
supervisorctl tail -f shadowsocks stderr
查看标准错误输出。