supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
 
1.安装 apt-get install supervisor
 
2.配置目录结构
 
--conf.d (启动进程配置文件存放路径)
--supervisord.conf(主配置文件)
 
1>首先,查看主配置文件
 
没有做太多修改,只是设置port=65000,这样可以打开supervisor的web页面的监控台,访问方法是http://xxx.xxx.xxx.xxx:65000
 
2>conf.d 文件夹,我们可以创建相应的文件,放入此文件夹下,因为主配置文件已经include了此文件下的配置
cd conf.d
touch album.conf
vim album.conf ,写入以下内容
 
[program:album_app.js]
directory = /data/album
command=nodejs app.js
user = root
autostart=true
startsecs=2
autorestart=true
redirect_stderr=true
stopsignal=INT
stdout_logfile=/data/logs/err.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stderr_events_enabled=false
 
3.相应的命令
 
这个工具主要就两个命令:
supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令
supervisorctl:启动supervisor的命令行窗口。
 
3.1. 启动supervisord
$supervisord -c /etc/supervisor/supervisord.conf
3.2. 关闭supervisord
$supervisorctl shutdown
3.3. 重新载入配置
$supervisorctl reload
3.4.更新新的配置到supervisord    
$supervisorctl update  
3.5.启动某个进程(program_name=你配置中写的程序名称)
$supervisorctl start program_name  
3.6.查看正在守候的进程
$supervisorctl  
3.7.停止某一进程 (program_name=你配置中写的程序名称)
$supervisorctl stop program_name  
3.8.重启某一进程 (program_name=你配置中写的程序名称)
$supervisorctl restart program_name  
3.9.停止全部进程
$supervisorctl stop all  
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。
 
 
4.配置文件详细解析
 
=====================主配置文件========================
[unix_http_server]
file=/tmp/supervisor.sock   ; UNIX socket 文件,supervisorctl 会使用
;chmod=0700                 ; socket 文件的 mode,默认是 0700
;chown=nobody:nogroup       ; socket 文件的 owner,格式: uid:gid
 
;[inet_http_server]         ; HTTP 服务器,提供 web 管理界面
;port=127.0.0.1:9001        ; Web 管理后台运行的 IP 和端口,如果开放到公网,需要注意安全性
;username=user              ; 登录管理后台的用户名
;password=123               ; 登录管理后台的密码
 
[supervisord]
logfile=/tmp/supervisord.log ; 日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB        ; 日志文件大小,超出会 rotate,默认 50MB
logfile_backups=10           ; 日志文件保留备份数量默认 10
loglevel=info                ; 日志级别,默认 info,其它: debug,warn,trace
pidfile=/tmp/supervisord.pid ; pid 文件
nodaemon=false               ; 是否在前台启动,默认是 false,即以 daemon 的方式启动
minfds=1024                  ; 可以打开的文件描述符的最小值,默认 1024
minprocs=200                 ; 可以打开的进程数的最小值,默认 200
 
; 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:///tmp/supervisor.sock ; 通过 UNIX socket 连接 supervisord,路径与 unix_http_server 部分的 file 一致
;serverurl=http://127.0.0.1:9001 ; 通过 HTTP 的方式连接 supervisord
 
; 包含其他的配置文件
[include]
files = /etc/supervisor/conf.d/*.conf   ; 可以是 *.conf 或 *.ini
 
 
=====================单独进程控制文件========================
[program:album_app.js]
directory = /data/album ;程序的启动目录
command=nodejs app.js ;启动命令
user = root ;启动用户
autostart=true ;在 supervisord 启动的时候也自动启动
startsecs=2 ;启动2秒后没有异常退出,就当作已经正常启动了
autorestart=true ; 程序异常退出后自动重启
redirect_stderr=true ; 把 stderr 重定向到 stdout,默认 false
stopsignal=INT
stdout_logfile=/data/logs/err.log
stderr_logfile_maxbytes=1MB ; stdout 日志文件大小,默认 50MB
stderr_logfile_backups=10   ; stdout 日志文件备份数
stderr_capture_maxbytes=1MB
stderr_events_enabled=false
 
 
5.web控制台的效果
 
 
6.参考资料
 
 
 

linux学习(四) -- supervisor守护进程的更多相关文章

  1. Linux 下Qt实现守护进程实例(转)

     原文地址:Linux守护进程的编程方法(含实例) 作者:lingdxuyan 参考文献 Linux信号列表(zz) Linux 守护进程的编程方法 linux上编写守护进程的例程 Linux下后台守 ...

  2. Linux编程之《守护进程》

    Intro ----- 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程常 ...

  3. Centos7 使用 Supervisor 守护进程 Celery

    一.Supervisor 安装(centos7 还有另一个进程守护命令 Systemd ) Centos 7 安装 Supervisord 二.Supervisor 守护进程 Centos7 使用 S ...

  4. 【Centos7】 中使用Supervisor守护进程

    原文出处: Centos7 中使用Supervisor守护进程 配置supervisor实现进程守护 1.安装supervisor yum install Supervisor   2.启动服务 su ...

  5. 一只简单的网络爬虫(基于linux C/C++)————守护进程

    守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程常常在系统引导装入时启动, ...

  6. Linux Supervisor 守护进程基本配置

    supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...

  7. linux c语言学习笔记之守护进程

    哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处 http://blog.csdn.net/woshixingaaa/archive/2010/06/06/5651095.aspx 守 ...

  8. Linux系统编程之--守护进程的创建和详解【转】

    本文转载自:http://www.cnblogs.com/mickole/p/3188321.html 一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终 ...

  9. CentOS7 安装supervisor守护进程管理器

    supervisor没有发布在标准的CentOS源在,需要安装epel源.这种方式安装的可能不是最新版本,但比较方便,安装完成之后,配置文件会自动帮你生成. 默认配置文件:/etc/superviso ...

随机推荐

  1. 在LINUX系统中MySQL数据库区分表名的大小写--解决办法

    因为linux下mysql默认是要区分表名大小写的.mysql是否区分大小写设置是由参数lower_case_table_names决定的, 其中:1)lower_case_table_names = ...

  2. fish 常用主题推荐

    在安装fish的前提下 omf install zish omf theme zish zish

  3. Eucalyptus学习汇总

    Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) 是一种开 ...

  4. 【Android开发笔记】底部菜单栏 FragmentTabHost

    公司项目,需求本来是按照谷歌官方指南写的,菜单栏设计成在导航栏下方 结果呢,审评时,BOSS为了和iOS统一,改成了底部菜单栏(标准结局),我只能呵呵呵呵呵呵呵 查了查资料发现实现底部菜单栏用的是Fr ...

  5. 分布式缓存memcached介绍,win7环境安装,常用命令set,get,delete,stats, java访问

    一.memcached是什么? 二.memcached不互相通信的分布式 三.安装步骤 四.本文介绍的命令主要包括: 存入命令(Storage commands) 取回命令(Retrieval com ...

  6. BZOJ 4541: [Hnoi2016]矿区 平面图转对偶图+DFS树

    4541: [Hnoi2016]矿区 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 433  Solved: 182[Submit][Status][ ...

  7. 如何解析比特币中的交易原始数据rawData

    交易数据结构 有关交易的详细信息可以查看比特币的wiki网站:Transaction TxBinaryMap: 原始图片地址 交易的结构表格(Transaction): 示例数据 以一个正式网络的一笔 ...

  8. WordPress企业建站心得

    回头聊聊我用WordPress做企业网站的事.说是企业网站,其实就是一个小的企业展示网站.事情要从我爸开了一家自行车店开始说起,自从他开了自行车店,不但开始学着玩起了微信(因为要做微信营销),又想到了 ...

  9. IOS segue(跳转页面处理)

    ● Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue) Segue的属性 ● 每一个Segue对象,都有3个属性 ➢ 唯一标识 @prope ...

  10. [UIImage imageWithContentsOfFile:@""] 内存警告

    You will want to use the [UIImage imageWithContentsOfFile:@""] method, as that doesn't cac ...