zoukankan      html  css  js  c++  java
  • 后台进程管理工具---supervisor

    supervisor是一个linux下的进程管理工具,有时须要开发一些后台服务类的程序。这类程序通常不能由于意外挂掉。所以最好能在出现意外挂掉的情况下可以重新启动,继续服务。

    之前我一直採用创建daemon,即守护进程的方式来实现,再通过其它进程监控,近期发现了这个后台进程管理神器。通过supervisor,可以将命令行的控制台程序轻松变为daemon,而且在意外挂掉时,supervisor可以自己主动帮我们重新启动。

    系统环境 ubuntu14.04,其它发行版linux安装配置大体同样


    以下以一个小样例展示supervisor的简单使用


    如果我们在/root/test文件夹下,要运行一个test.py文件,并希望它成为守护进程在后台运行,而且在挂掉时可以被即时重新启动,尽可能的继续服务。


    首先安装supervisor

    sudo apt-get install supervisor

    也能够通过pip安装

    pip install supervisor

    也可通过easy_install

    easy_install supervisor


    配置

    进入/etc/supervisor/conf.d文件夹

    加入一个test.conf配置文件来配置我们的进程

    [program:test]
    command=python test.py
    directory=/root/test
    autorestart=true
    user=root
    当中[program:test]指定了该配置的名字,即后面通过supervisorctl start [配置进程名] 中的配置进程名

    command指定了运行的命令,这里是一个python文件。我们通过python test.py运行

    directory制定了test.py文件所在的路径

    autorestart指定进程意外终止时可以被重新启动

    user指定了执行该程序的用户


    你也能够直接将上面的配置直接写入到/etc/supervisor/supervisord.conf文件里,效果与上面一致。


    重载配置文件

    增加配置文件之后,我们须要让supervisor又一次读取配置文件,以便我们的配置可以生效

    supervisorctl update

    删除配置文件,也要运行 supervisorctl update



    启动进程

    supervisorctl start test

    当中test即为配置中写入的[program:test]。该命令的效果与python test.py一致,仅仅是让其以守护进程方式执行,而且进程意外终止时会被supervisor重新启动


    因为在配置文件里。指定了该进程意外终止会被重新启动。因此我们不能通过杀掉该进程的方法来结束进程。而是通过supervisor

    终止进程

    supervisorctl stop test


    重新启动进程

    supervisorctl restart test




    很多其它关于supervisor的内容能够參考官方文档 http://supervisord.org/

  • 相关阅读:
    C++解析一些我们需要的数据
    C语言0数组、柔性数组使用介绍
    正点原子T100智能焊台-试用-拆机测评
    简单工厂模式、工厂模式、抽象工厂模式比较
    一次小模块的使用过程-LC12S无线模块介绍
    正点原子DS100拆解全过程-硬件工程师必备
    STM32通过rosserial接入ROS通讯开发
    Linux下实现Firewalld Net 外网端口转发至内网
    Windows中使用netsh portproxy端口转发
    低延迟网穿透工具FRP
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7114938.html
Copyright © 2011-2022 走看看