您的浏览器不支持CSS3,建议使用Firfox、Chrome等浏览器,以取得最佳显示效果

Supervisor在Ubuntu中的使用总结

开发技术 385℃ 0 4个月前 (03-03)

摘要

Supervisor是一款用Python实现的进程管理工具,可用于在后台以Daemon模式运行进程,并能在异常时自动重启。例如可以用Supervisor管理Node、Nginx等。

安装
apt-g

Supervisor是一款用Python实现的进程管理工具,可用于在后台以Daemon模式运行进程,并能在异常时自动重启。例如可以用Supervisor管理Node、Nginx等。

安装

apt-get install supervisor

注意:用apt安装一般可以开机自启动,用pip安装则需要自己配置。

配置应用

/etc/supervisor/conf.d/文件夹下创建conf文件,一个文件对应一个应用。

cd /etc/supervisor/conf.d/
vim app.conf
[program:app]       # 应用的名字
command=/root/xxx   # 执行的命令
directory=/root/    # 进程当前目录
user=root           # 执行用户,可以是nobody
priority=1          # 优先级
numprocs=1          # 启动的进程数目
autostart=true      # 随supervisor同时启动
autorestart=true    # 出错重启

常用操作

# 启动、停止、重启Service
service supervisor stop
service supervisor start
service supervisor restart

# 启动、停止、重启指定应用
supervisorctl stop app
supervisorctl start app
supervisorctl restart app

# 启动、停止、重启groupworker分组的应用
supervisorctl stop groupworker
supervisorctl start groupworker
supervisorctl restart groupworker

# 启动、停止、重启所有应用
supervisorctl stop all
supervisorctl start all
supervisorctl restart all

# 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl reload
# 根据最新的配置文件,启动新配置或有改动的进程,配置没改动的进程不重启
supervisorctl update

# 注1:start、restart、stop都不会载入最新的配置文件
# 注2:显式用stop停止掉的进程,用reload或者update都不会自动重启

如果启动supervisor服务时出现以下错误,可输入sudo unlink /tmp/supervisor.sock,再尝试启动。

Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

全局配置文件

配置文件:/etc/supervisor/supervisord.conf

[email protected]:/etc/supervisor# cat supervisord.conf
; supervisor config file

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

[include]
files = /etc/supervisor/conf.d/*.conf

配置Web后台

可在全局配置文件中添加下面的内容,配置Supervisor的Web后台,查看状态、进行操作。

其中port用127.0.0.1:9001表示仅主机自身通过9001端口可访问,使用*则表示任意IP通过9001端口可访问。

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
username=admin             ; (default is no username (open server))
password=123               ; (default is no password (open server))

云主机上配置port为*:9001,重启supervisor服务,从浏览器访问主机的9001端口,输入用户名密码即可打开Web后台,如图。

配置开机启动

一般使用apt安装的Supervisor默认即可开机启动。如果不能启动,或是使用pip安装的,可以参考下面的文章创建脚本并执行相应命令
http://blog.csdn.net/shanliangliuxing/article/details/15499891

对于Ubuntu 16.04,如果开机不能自启动,可以尝试StackOverFlow上的回答,执行如下命令:

sudo systemctl enable supervisor

You need to execute the command for starting a service at system up. For systemd on Ubuntu 16.04, this would be:

sudo systemctl enable supervisor

参考

supervisor安装部署文档和管理实例
http://blog.csdn.net/shanliangliuxing/article/details/15499891

Ubuntu 14.04下进程管理工具supervisor安装
http://lambda.hk/nginx/2015/05/01/nginx-supervisor/

使用supervisor进行进程监控和自启动管理
https://3rgb.com/entry/daemon_control_autostart_with_supervisor

Supervisor doesn’t start on startup on Ubuntu 16.04
http://stackoverflow.com/questions/38551851/supervisor-doesnt-start-on-startup-on-ubuntu-16-04

最后,欢迎扫码关注微信公众号。微软 / Shopee / Coupang / BAT等国内外企业内推、行业和技术交流,也可以加我微信 jzj2015(注明来自博客),拉你进技术群。

本文由原创,转载请注明来源:https://www.paincker.com/supervisor-usage
(标注了原文链接的文章除外)

0

暂无评论

评论前:需填写以下信息,或 登录

用户登录

忘记密码?