Linux 进程管理工具:supervisor supervisor简介

在Linux服务器中,有时候我们需要一个进程需要可靠的在后台运行,并且能够监控进程状态,在意外结束时能够自动重启等。此时就可以使用supervisor。

supervisor 是使用Python开发的一套通用的进程管理程序,能够将一个普通的命令行进程变成后台的守护进程,并且监控进程的状态,异常退出时能够自动重启。

安装supervisor

在Ubuntu中可以使用apt-get来安装:

sudo apt-get install supervisor

如果安装缓慢,可以更换中科大的源:

https://mirrors.ustc.edu.cn/help/ubuntu.html

配置

安装完成以后,我们需要编写一个配置文件,让supervisor来管理它。每个进程的配置文件都可以单独拆分,放在/etc/supervisor/conf.d/目录下,以.conf作为扩展名。

# 首先进入/etc/supervisor/conf.d目录
/etc/supervisor/conf.d
# 使用supervisor自带的命令生成模板
echo_supervisord_conf > foo.conf

编辑模板,在开头添加以下内容:

[program:foo]
command=/bin/cat

[program:app] : 定义进程app

command : 命令

directory : 进程的当前目录

user : 进程运行的用户身份

详细配置说明:

;*为必须填写项
;*[program:应用名称]
[program:cat];*命令路径,如果使用python启动的程序应该为 python /home/test.py,
;不建议放入/home/user/, 对于非user用户一般情况下是不能访问
command=/bin/cat;当numprocs为1时,process_name=%(program_name)s
;当numprocs>=2时,%(program_name)s_%(process_num)02d
process_name=%(program_name)s;进程数量
numprocs=1;执行目录,若有/home/supervisor_test/test1.py
;将directory设置成/home/supervisor_test
;则command只需设置成python test1.py
;否则command必须设置成绝对执行目录
directory=/tmp;掩码:--- -w- -w-, 转换后rwx r-x w-x
umask=022;优先级,值越高,最后启动,最先被关闭,默认值999
priority=999;如果是true,当supervisor启动时,程序将会自动启动
autostart=true;*自动重启
autorestart=true;启动延时执行,默认1秒
startsecs=10;启动尝试次数,默认3次
startretries=3;当退出码是0,2时,执行重启,默认值0,2
exitcodes=0,2;停止信号,默认TERM
;中断:INT(类似于Ctrl+C)(kill -INT pid),退出后会将写文件或日志(推荐)
;终止:TERM(kill -TERM pid)
;挂起:HUP(kill -HUP pid),注意与Ctrl+Z/kill -stop pid不同
;从容停止:QUIT(kill -QUIT pid)
;KILL, USR1, USR2其他见命令(kill -l),说明1
stopsignal=TERMstopwaitsecs=10;*以root用户执行
user=root;重定向
redirect_stderr=falsestdout_logfile=/a/path
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/a/path
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB;环境变量设置
environment=A="1",B="2"serverurl=AUTO

启动

如果编辑默认的supervisor.conf,则需要重启supervisor使配置文件生效:

supervisorctl reload

然后运行下面的命令启动进程:

supervisorctl start foo

如果运行出现如下错误:

unix:///var/run/supervisor.sock no such file

可以运行下面的命令,然后再次启动:

sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo service supervisor restart

看到如下信息,说明运行成功:

foo: started

也可以输入supervisorctl进入supervisor的控制台界面,同样能够看到:

foo RUNNING pid 6665, uptime 0:08:08

在supervisor的控制台输入help可以获取帮助信息,输入status可以获取当前运行的进程信息,输入exit可以退出supervisor的控制台界面。

关闭

使用下面的命令就可以关闭supervisor启动的进程:

supervisorctl stop foo

可以看到输出信息:

foo: stopped

常用命令

更新新的配置到supervisord

supervisorctl update

重新启动配置中的所有程序

supervisorctl reload

启动某个进程(program_name=你配置中写的程序名称)

supervisorctl start program_name

查看正在守候的进程(同时进入控制台)

supervisorctl

停止某一进程 (program_name=你配置中写的程序名称)

pervisorctl stop program_name

重启某一进程 (program_name=你配置中写的程序名称)

supervisorctl restart program_name

停止全部进程

supervisorctl stop all

作者: 秋名山车神 
链接:http://www.imooc.com/article/16939
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作!

Linux 进程管理工具:supervisor相关推荐

  1. Linux进程管理工具 Supervisor详解

    介绍 Supervisor安装与配置(linux/unix进程管理工具) Supervisor(http://supervisord.org)是用Python开发的一个client/server服务, ...

  2. linux进程管理工具supervisor

    英文比较好的朋友,可以查看这篇文章 https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervi ...

  3. linux进程管理工具supervisor安装卸载、子配置文件详解、遇到的问题、supervisor group群组管理、启动一个springboot项目示例、update命令注意点

    简介 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启. 它是通过fork/exec的方式把这些被管 ...

  4. python怎么打开程序管理器_Python 进程管理工具 Supervisor 使用教程

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 进程管理工具 Supervisor 使用教程 Supervisor ...

  5. 进程管理工具(Supervisor)笔记

    感谢GoFrame框架实战2群的 朽木自雕 大佬提供的Supervisor笔记 # 开发笔记## [进程管理工具(Supervisor)](http://supervisord.org/introdu ...

  6. ​Linux进程管理工具

    Linux进程管理工具 一.pstree:查看进程树结构 二.ps命令使用 1.命令说明 ps:显示进程状态的命令,快照式.一次性 2.常用组合参数 aux: -ef: 例如: 3.各选项代表意义: ...

  7. 进程管理工具supervisor的使用、常见报错问题处理

    进程管理工具supervisor的使用.常见报错问题处理 1 安装 2 简介 2.1 supservisor自身提供三个命令: 2.1.1 supervisorctl 2.1.2 supervisor ...

  8. Linux进程管理工具_Supervisor的安装与配置

    Linux/Unix进程管理工具_Supervisor的安装与配置 Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是L ...

  9. 进程管理工具Supervisor

    简介 Supervisor是一个客户端/服务器系统,允许用户在类UNIX操作系统上控制许多进程.它是基于python语言开发一个进程管理工具. Supervisor的服务器端称为supervisord ...

最新文章

  1. 正弦信号有效值 c语言,推导正弦波正弦量、平均值、有效值基本公式
  2. WPF自定义空心文字
  3. .NET中的OleDb,Odbc的Parameters
  4. mysql删除重复sql_mysql中删除完全重复数据的准确SQL语句
  5. HDU1907 ZJU3113
  6. 收集灵感必备|文字这样组合排版那才叫设计
  7. c++ stl下的sort()函数介绍及基本用法
  8. 好用的开源房产管理系统测评(附源码)
  9. 各省简称 拼音 缩写_近50个拼音/英文缩写合集 (一)
  10. 解决gitlab-ci 自动编译时 fatal: unable to access 'http://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx
  11. 谷歌打开微信定位服务器地址,使用Chrome修改user agent模拟微信内置浏览器
  12. 京东联盟接口——链接取商品sku
  13. Cesium 多边形(polygon)extrudedHeight 和 height 的区别
  14. excel 与mysql交互_excel和数据库交互
  15. 《沉思录卷一》闪耀在私人生活圈的品质
  16. NER综述 | 命名实体识别的过去和现在
  17. 树莓派驱动水星无线网卡(MW150UH)教程指南
  18. 【并发编程一:走进并发编程】
  19. linux指令查询ip地址
  20. 景联文智能标注平台将数据处理效率提升十倍以上!数据精准度最高可达99%

热门文章

  1. 微软学生中心开始对学生免费赠送Windows Server 2008 R2标准版
  2. Java的宝贝——反射
  3. 音视频架构的三部分之推流过程(一)
  4. 图片去底色,图片透明化,免费简单快捷 [ 没有比这更好用的了 ]
  5. Android 8 WiFi断流,小米8wifi断流怎么解决
  6. 【NOIP%你题】【线性筛】dun题解
  7. 升级版 @Async,让异步任务无懈可击
  8. ACW 4194. Pow
  9. ping是什么,有什么作用?
  10. Java练习题第十九期:另类加法