[转]supervisor 安装、配置、常用命令
原文: http://www.cnblogs.com/xueweihan/p/6195824.html
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
前言
在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常、报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务。
所以,就需要一个工具,时刻监控 web 应用的运行情况,管理该进程。
Supervisor 就是解决这种需求的工具,可以保证程序崩溃后,重新把程序启动起来等功能。
简介
Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是 Python 进程)。
安装
- Ubuntu系统下:
apt-get install supervisor
,通过这种方式安装后,自动设置为开机启动 - 也可以通过
pip install supervisor
进行安装,但是需要手动启动,然后设置为开机启动(不推荐这种安装方式)
Supervisor 配置
Supervisor 是一个 C/S 模型的程序,supervisord
是 server 端,supervisorctl
是 client 端。
supervisord
下面介绍 supervisord 配置方法。supervisord 的配置文件默认位于 /etc/supervisord.conf
,内容如下(;
后面为注释):
; supervisor config file[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file) UNIX socket 文件,supervisorctl 会使用
chmod=0700 ; sockef file mode (default 0700) socket 文件的 mode,默认是 0700 [supervisord] logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) 日志文件,默认是 $CWD/supervisord.log pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) 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 通过 UNIX socket 连接 supervisord,路径与 unix_http_server 部分的 file 一致 ; 在增添需要管理的进程的配置文件时,推荐写到 `/etc/supervisor/conf.d/` 目录下,所以 `include` 项,就需要像如下配置。 ; 包含其他的配置文件 [include] files = /etc/supervisor/conf.d/*.conf ; 引入 `/etc/supervisor/conf.d/` 下的 `.conf` 文件
program 配置
program 的配置文件就写在,supervisord 配置中 include
项的路径下:/etc/supervisor/conf.d/
,然后 program 的配置文件命名规则推荐:app_name.conf
[program:app] ; 程序名称,在 supervisorctl 中通过这个值来对程序进行一系列的操作
autorestart=True ; 程序异常退出后自动重启
autostart=True ; 在 supervisord 启动的时候也自动启动 redirect_stderr=True ; 把 stderr 重定向到 stdout,默认 false environment=PATH="/home/app_env/bin" ; 可以通过 environment 来添加需要的环境变量,一种常见的用法是使用指定的 virtualenv 环境 command=python server.py ; 启动命令,与手动在命令行启动的命令是一样的 user=ubuntu ; 用哪个用户启动 directory=/home/app/ ; 程序的启动目录
需要注意:
- 用 supervisord 管理时,gunicorn 的 daemon 选项需要设置为 False
- 如果启动命令需要包含
workon
,修改environment参数:environment=PATH="/home/username/.virtualenvs/myproject/bin"
supervisorctl 操作
supervisorctl 是 supervisord 的命令行客户端工具,使用的配置和 supervisord 一样,这里就不再说了。下面,主要介绍 supervisorctl 操作的常用命令:
输入命令 supervisorctl
进入 supervisorctl 的 shell 交互界面(还是纯命令行?),就可以在下面输入命令了。:
- help # 查看帮助
- status # 查看程序状态
- stop program_name # 关闭 指定的程序
- start program_name # 启动 指定的程序
- restart program_name # 重启 指定的程序
- tail -f program_name # 查看 该程序的日志
- update # 重启配置文件修改过的程序(修改了配置,通过这个命令加载新的配置)
也可以直接通过 shell 命令操作:
- supervisorctl status
- supervisorctl update
- ...
参考
[转]supervisor 安装、配置、常用命令相关推荐
- npm、cnpm、yarn的安装与常用命令
1.安装 npm curl -L https://www.npmjs.com/install.sh | sh a.临时使用(例如安装express) npm --registry https://re ...
- Linux-Day01_简介_安装_常用命令_虚拟机快照_静态ip
Linux-Day01 课程内容 Linux简介 Linux安装 Linux常用命令 1. 前言 1.1 什么是Linux Linux是一套免费使用和自由传播的操作系统.说到操作系统,大家比较熟知的应 ...
- Docker在CentOS7上的安装及常用命令
Docker简介:Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...
- yum源仓库安装与常用命令
yum源仓库安装与常用命令 yum 配置本地yum源仓库 尝试安装程序 yum常用命令 yum Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedH ...
- Docker(一):Docker的安装与常用命令
相关阅读: Docker(一):Docker的安装与常用命令 Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit Docker(三):Docker镜像导入与导 ...
- 华为交换机配置常用命令
华为交换机配置常用命令 一.配置软件和硬件 1.配置(Console)电缆连接 配置电缆是一根8芯屏蔽电缆,一端是压接的RJ-45连接器,插入交换机的Console口里:另一端则同时带有一个DB-9( ...
- linux下载安装的命令,linux安装和常用命令
linux安装和常用命令 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 Linux安装和常用命令常用命令:文件管理:1,cat:把 ...
- iOS:如何在iphone、ipad上安装一些常用命令行命令
iOS:如何在iphone.ipad上安装一些常用命令行命令 相信对Linux.Unix比较熟悉的朋友,在iphone或 ipad越狱后发现通过Cydia可以安装OpenSSH,一定都想安装上并且通过 ...
- Stata17安装及常用命令使用教程
Stata17安装及常用命令使用教程 一.安装Stata17 二.安装外部命令 三.常用命令及操作 1.输入数据 2.描述性统计 3.线性回归 4.内生性检验 一.安装Stata17 链接:https ...
- Chocolatey安装与常用命令
文章目录 Chocolatey安装与常用命令 1. Chocolatey的安装 (1) cmd安装 (2) PowerShell安装 2. 检查与更新 (1) 检查是否安装成功 (2) 查看安装目录 ...
最新文章
- Python程序员Debug利器,和Print说再见 | 技术头条
- Markdown拾遗
- 汇编和python-编程语言与Python介绍
- rtp h264打包和解包
- 全球及中国垃圾发电行业运营管理及十四五投资价值评估报告2021-2027年
- Python之值得学习练手的22个迷你程序(附代码)
- 深入jvm虚拟机第4版_深入理解JVM虚拟机
- Java类class isSynthetic()方法及示例
- 35解释器模式(Interpreter Pattern)
- tushare查看a股是否跌到位
- ①你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
- 小熊的人生回忆(五)
- 移植性问题のCString类型转换,字符串操作和UNICODE、ANSI字符集
- Java使用Redis
- Elastic-job 2.1.3 概述
- 荷兰商业银行使用精益领导力推行改进
- 8-4 测试http服务器(上)
- Tomcat免安装版+Eclipse配置
- 【python】ssim原理简介及代码实现
- 自然语言处理的会议、论文集下载