supervisor守护进程配置

news/2024/7/24 13:29:45 标签: supervisor, 守护进程, 运维, linux, centos

实际应用项目:http://github.crmeb.net/u/long

软硬件环境

  • centos7.6.1810 64bit

     

    cat /etc/redhat-release #查看系统版本

  • supervisor 3.4.0

  • python 2.7.5

supervisor简介">supervisor简介

supervisor是一个用python语言编写的进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。当一个进程意外被杀死,supervisor监听到进程死后,可以很方便的让进程自动恢复,不再需要程序员或系统管理员自己编写代码来控制。

supervisord安装">supervisord安装

 

yum install -y epel-release yum install -y supervisor

启动&开启自启

 

systemctl start supervisord systemctl enable supervisord

其他命令

 

systemctl stop supervisord systemctl start supervisord systemctl status supervisord systemctl reload supervisord systemctl restart supervisord

supervisor的web端">supervisor的web端

supervisor提供了基于web的控制,管理员可以通过在页面上点点按钮即可完成对进程的启动、重启等操作,甚是方便。

进入配置文件,开启对web端的支持

 

vim /etc/supervisord.conf

如果提供给外部访问,需要将port改为本机ip地址

 

#取消10-13行注释,前面数字是行号 [inet_http_server] ; inet (TCP) server disabled by default port=192.168.26.121:9001 ; (ip_address:port specifier, *:port for all iface) username=user ; (default is no username (open server)) password=123 ; (default is no password (open server))

配置完成后重启服务

 

systemctl restart supervisord

supervisord应用配置">supervisord应用配置

进入supervisord配置文件

 

cat /etc/supervisord.conf

通过配置文件最后一行看到

 

[include] files = supervisord.d/*.ini

也就是说,我们所有的应用配置文件都保存在这个目录下,以.ini格式命名保存的,可以自行修改地址,但不要修改后缀

那我们来创建一个受监控的应用吧

创建测试python配置

创建一个名称叫做python的应用程序配置

 

vim /etc/supervisord.d/python.ini

配置文件内容,其中command就是我们应用程序启动需要执行的命令

 

[program:python] #这里的python就是我们显示在web前端以及终端的监控名称 command=python /tmp/supervisordtest/test.py #我们要监控的文件地址 autostart=true autorestart=true startsecs=1 startretries=3 redirect_stderr=true stdout_logfile=/tmp/supervisordtest/access_python.log #日志地址,可自行配置目录 stderr_logfile=/tmp/supervisordtest/error_python.log #日志地址,可自行配置目录

创建test.py

 

mkdir /tmp/supervisordtest vim /tmp/supervisordtest/test.py

程序内容:开启一个死循环,不停的打印内容

 

while True: print(100)

重启supervisord使配置文件生效

 

systemctl restart supervisord

查看应用是否正常启动

1、命令查看

 

systemctl status supervisord

2、可视化web查看

web端可以重启,停止,清理日志,查看日志等多个操作

image-20200607153351958

supervisor相关的几个命令">supervisor相关的几个命令

安装完毕,会生成3个系统命令supervisorctlsupervisordecho_supervisord_conf

  1. supervisord,运行supervisor时会启动一个进程supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启

  2. supervisorctl是命令行管理工具,可以用来执行 start stop restart 等命令,来对这些子进程进行管理, 如

     

    sudo supervisorctl start demoweb

    其中demoweb是进程的名称, 详细的命令及说明见下面的这张表

    命令说明
    supervisorctl start program_name启动某个进程
    supervisorctl stop program_name停止某个进程
    supervisorctl restart program_name重启某个进程
    supervisorctl status program_name查看某个进程的状态
    supervisorctl stop all停止全部进程 | \
    supervisorctl reload载入最新的配置文件,重启所有进程
    supervisorctl update根据最新的配置,重启配置更改过的进程,未更新的进程不受影响
  3.  

    echo_supervisord_conf

    用来生成默认的配置文件(默认配置文件,内容非常齐全且都有注释,适合用时查阅,用法是这样的

     

    echo_supervisord_conf > test.conf


http://www.niftyadmin.cn/n/908819.html

相关文章

Java compiler level does not match the version of the installed Java project facet.

问题原因: Facted Project 中的Java 版本设定与项目的Java编译器的compliance level设定不一致。 解决办法: 把两者设置成相同。 转载于:https://www.cnblogs.com/starxing/p/5751778.html

登录授权验证之OAuth2.0

实际应用项目:http://github.crmeb.net/u/long 本文将从几个方面了解和学习使用OAuth2.0。对不对就不管了,反正我也几乎不会用到。ps.有个项目用到了,所以才会有本文。 OAuth2.0介绍和功能微信开放平台和github的OAuth2.0接入应用自己写一个…

2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem I. Interest Targeting 模拟题

Problem I. Interest Targeting题目连接: http://codeforces.com/gym/100714 Description A unique display advertisement system was developed at the department of advertising technologies, Yaagl Inc. The system displays advertisements that meet the in…

Linux 服务器必备的安全设置

这里给大家推荐一款免费迭代 二开便捷的商城项目:源码直通车>>> 好不容易买了服务器,如果因为自己的疏忽,被黑客黑掉的话,那真的是太糟糕了! 下面告诉你一些简单的方法提高服务器的安全系数,我的…

面向对象重载

1.使用面向对象来求两个圆之间的面积2.函数重载函数重载需要的条件:函数名要相同,参数的个数或者参数的类型不同3.this关键字虽然写在类里面,但不是属于类的,而是属于该对象的一般来说在类里面 this关键字是可以省略的&#xff0c…

VMware创建Linux虚拟机并安装CentOS(一)

在VMware中新建虚拟机,在新建虚拟机向导中,选择“自定义(高级)”选项,鼠标单击“继续”按钮 选择VMware的版本workstation9.0(VMware版本对硬盘、内存、cpu等硬件的支持大小数量不同,选择不同版本可以看到差别&#xf…

仓库管理工具Git之git clone和git pull的区别

实际应用项目:http://github.crmeb.net/u/long 1.需不需要本地文件夹是仓库 git clone是将整个工程复制下来所以,不需要本地是仓库(没有.git文件夹) git clone git pull需要先初始化本地文件夹文一个仓库 git pull 2.切换分支的问…

登录超时页面跳转和ajax请求时的问题!

今天闲来无事听见后端两个coder探讨如何判断请求是否是ajax请求(通过请求头判断是否是xmlhttprequest 和ie下那个布啦布啦的东西 )了解详情后是为了解决判断登陆超时ajax请求到的是登陆页面的html。 然后我给出了一个设计方式方最然我是一个前端&#xf…