zoukankan      html  css  js  c++  java
  • Linux进程批量管理工具

    在使用docker容器时,可以有单机的docker-compose批量编排工具,甚至还有集群的k8s之类编排工具,那么在Linux系统中同样也有相关的批量管理进程的工具,其中使用最多的应该就是supervisor。Supervisor是一个用Python写的进程管理工具,可以很方便的用来启动、重启、关闭进程。

    supervisor主要由两部分组成:supervisord主要负责管理子进程,响应客户端命令以及日志的输出等;supervisorctl执行命令行客户端,用户可以通过它与不同的supervisord进程联系,获取子进程的状态等。

    安装与配置
    Centos7版本后已经集成了supervisor工具,可以直接通过yum命令安装,并设置开机启动服务:

    yum install -y supervisor
    systemctl enable supervisord

    默认的配置文件在/etc/supervisord.conf中,可以设置可视化的页面,也可以设置集中的管理配置文件路径:

    ;[inet_http_server]         ; inet (TCP) server disabled by default
    ;port=127.0.0.1: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))

    [supervisorctl]
    serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket
    ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
    ;username=chris              ; should be same as http_username if set
    ;password=123                ; should be same as http_password if set
    ;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
    ;history_file=~/.sc_history  ; use readline history if available

    [include]#此项是自定义配置文件路径
    files = supervisord.d/*.ini

    supervisor最为关键的就是自定义的进程管理文件,以下为示例:

    [program:leo_zhou]#自定义进程名称
    command = ping www.zhouzhifei.com#进程操作命令
    directory = /data/program#命令执行路径
    autorestart= true#是否异常后重启
    autostart = true#是否随supervisor启动
    startsecs = 5#启动延时执行
    startretries = 3#启动尝试次数
    user = root#进程用户
    stopsignal = INT#停止信号,默认TERM;中断:INT(类似于Ctrl+C)(kill -INT pid),退出后会将写文件或日志(推荐);终止:TERM(kill -TERM pid);挂起:HUP(kill -HUP pid),注意与Ctrl+Z/kill -stop pid不同;从容停止:QUIT(kill -QUIT pid)

    supervisorctl命令
    supervisorctl stop(start, restart) xxx/all,停止(启动,重启)某一个进程(xxx)/全部;
    supervisorctl reread: 只载入最新的配置文件, 并不重启任何进程;
    supervisorctl reload: 载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程;
    supervisorctl update: 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启;

    supervisor的功能主要是可以自定义管理Linux进程,方便后期的维护,但如果使用了docker容器后,基本就告别进程的管理方式,而以docker容器管理为主导。

  • 相关阅读:
    聚簇索引和非聚簇索引(通俗易懂 言简意赅)
    Java-线程池专题(什么是线程池,如何使用,为什么要用)
    在Spring Boot中动态实现定时任务配置
    面试被问:如果系统 CPU 突然飙升且 GC 频繁,你该如何排查?
    深入理解volatile
    redis3.0常用命令
    redis3.0配置文件详解
    mysql max_allowed_packet 设置过小导致记录写入失败
    linux 项目部署问题
    python sokct 包详解
  • 原文地址:https://www.cnblogs.com/zhouzhifei/p/11836344.html
Copyright © 2011-2022 走看看