linux守护进程生命周期管理-supervisord

news2024/7/2 21:31:04

简介

supervisor是一个client/server系统,允许用户控制多个类unix系统的进程,摆脱rc.d脚本的不方便性.supervisor具有简单,集中化管理,搞笑,可扩展性,高兼容.

整套软件包含:supervisord(守护进程),supervisorctl(命令行工具),web server(一个web交互界面),XML-RPC 交互

安装

#centos
yum install epel-release
yum install supervisor
#ubuntu
apt isntall supervisor

配置文件

查看/etc/supervisord.conf内容可以看到,配置文件被分为几个部分,对这个几个部分详细说明

unix_http_server

[unix_http_server]
file=/var/run/supervisor/supervisor.sock   ; (the path to the socket file)
;chmod=0700                 ; sockef 文件的权限 (默认是 0700,只有属主有读写执行权限)
;chown=nobody:nogroup       ; socket 文件属主和属组
;username=user              ; 指定可以访问账号(d默认是没有)
;password=123               ; 指定访问的密码(默认是没有)

这里file配置指定socket的路径,这个是作为客服端访问的一个入口,启动unix是表示这个是一个监听socket的程序,说明只能在本机访问,不能给其他网络客户端访问.这里客服端一般是supervisorctl命令.这个unix_http_server是默认启动的.

如果你需要使用账号密码访问需要给username和password指定账号和密码.

inet_http_server

;[inet_http_server]         ; inet (TCP) server disabled by default
;port=127.0.0.1:9001        ; 指定监听的ip和端口
;username=user              ; 指定账号,默认是没有
;password=123               ; 指定密码,默认是没有,这个账号密码最好添加

如果你想将控制入口暴露给网络中的其他客户端,可以去掉注释,可以将这个在防火钱上授权给集中控制客户端ip,做到集中控制程序.这个配置默认是没有启用的,有一定安全隐患在其中.

supervisord

[supervisord]
logfile=/var/log/supervisor/supervisord.log  ; 日志存放路径,默认是当前目录下supervisord.log
logfile_maxbytes=50MB       ; 日志文件的最大大小,默认是50MB
logfile_backups=10          ; 日志保存的数量默认是10个
loglevel=info               ; 日志等级是info,默认 info; 其他包括: debug,warn,trace
pidfile=/var/run/supervisord.pid ; pid文件路径
nodaemon=false              ; 是否运行为后端程序
minfds=1024                 ; 最小可用的文件描述限制是1024
minprocs=200                ; 最小可用的进程数是200
;umask=022                  ; 进程文件umask
;user=chrism                 ; 启动进程使用的用户名称
;identifier=supervisor       ; supervisord标识是supervisor
;directory=/tmp              ; 在启动的时候需要切换的目录
;nocleanup=true              ; 不清理临时文件
;childlogdir=/tmp            ; ('AUTO' child log dir, default $TEMP)
;environment=KEY=value       ; 环境变量
;strip_ansi=false            ; (strip ansi escape codes in logs; def. false)

这个supervisord程序的配置信息.

supervisorctl

[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

这段配置在使用supervisorctl这个命令的时候,默认的参数,serverurl是前面unix_http_server或inet_http_server中指定的地址,username,prompt指定访问需要用到的账号密码(如果有指定的话),history_file指定使用命令的历史记录.

自己程序配置段

;[program:theprogramname]
;command=/bin/cat              ; the program (relative uses PATH, can take args)
;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
;numprocs=1                    ; number of processes copies to start (def 1)
;directory=/tmp                ; directory to cwd to before exec (def no cwd)
;umask=022                     ; umask for process (default None)
;priority=999                  ; the relative start priority (default 999)
;autostart=true                ; start at supervisord start (default: true)
;autorestart=true              ; retstart at unexpected quit (default: true)
;startsecs=10                  ; number of secs prog must stay running (def. 1)
;startretries=3                ; max # of serial start failures (default 3)
;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
;stopsignal=QUIT               ; signal used to kill process (default TERM)
;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
;user=chrism                   ; setuid to this UNIX account to run the program
;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
;stdout_events_enabled=false   ; emit events on stdout writes (default false)
;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO
;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups=10     ; # of stderr logfile backups (default 10)
;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
;stderr_events_enabled=false   ; emit events on stderr writes (default false)
;environment=A=1,B=2           ; process environment additions (def no adds)
;serverurl=AUTO                ; override serverurl computation (childutils)

这个配置段是我们需要重点掌握的

  • command=/bin/cat 程序的路径,可以携带参数
  • process_name=%(program_name)s ; 成熟名称,默认是program_name,上面的theprogramname
  • numprocs=1 ; 进程数量,一般是1
  • directory=/tmp ; 进程运行的目录
  • umask=022 ; umask for process (default None)
  • priority=999 ; the relative start priority (default 999)
  • autostart=true ; start at supervisord start (default: true)
  • autorestart=true ; retstart at unexpected quit (default: true)
  • startsecs=10 ; number of secs prog must stay running (def. 1)
  • startretries=3 ; max # of serial start failures (default 3)
  • exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
  • stopsignal=QUIT ; signal used to kill process (default TERM)
  • stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
  • user=chrism ; setuid to this UNIX account to run the program
  • redirect_stderr=true ; 将错误输出重定向到标准输出中,这样就可以将stdout和stderr到同一个文件中
  • stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
  • stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
  • stdout_logfile_backups=10 ; # of stdout logfile backups (default 10)
  • stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
  • stdout_events_enabled=false ; emit events on stdout writes (default false)
  • stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
  • stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
  • stderr_logfile_backups=10 ; # of stderr logfile backups (default 10)
  • stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
  • stderr_events_enabled=false ; emit events on stderr writes (default false)
  • environment=A=1,B=2 ; process environment additions (def no adds)
  • serverurl=AUTO ; override serverurl computation (childutils)

我使用的配置一般是

[program:example]
command=ping -i 5 baidu.com
directory=/example
process_name=%(program_name)s
autostart=true
autorestart=true
startsecs=3
startretries=3
stopsignal=TERM
exitcodes=0,2
stopwaitsecs=10
redirect_stderr=true
stdout_logfile = /tmp/example.log
stdout_logfile_maxbytes=1000MB
stdout_logfile_backups=5

include

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

一般操作是将我们自己的程序的supervisor的文件文件一个一个单独放在这个files指定的目录中,可以更好的管理和操作.include会将files中的配置加入进来.

supervisorctl

这个命令可以让我们控制supervisor所管理的守护进程.

1 添加,删除,修改配置

在之后的管理中,我们会向include中指定的files中添加,删除,修改守护进程的配置,每次操作完后都需要是的supervisor重新加载配置.

supervisorctl update

2 重启,停止,启动守护进程

#重启
supervisorctl restart processname
#重启所有程序
supervisorctl restart all
#停止
supervisorctl stop processname
#停止所有程序
supervisorctl stop all
#启动
supervisorctl start processname
#启动所有
supervisorctl start all

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1880305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware17.0 安装过程

VMware17.0 VMware 17.0 是一款功能强大的虚拟机软件,用于在计算机上创建和管理虚拟机。它能够同时运行多个操作系统,如 Windows、Linux 等,并且在这些虚拟机之间提供无缝的切换和共享功能。 VMware 17.0 支持最新的硬件和操作系统&#xf…

区间动态规划——最长回文子串(C++)

难得心静。 ——2024年6月30日 什么是区间动态规划? 区间动态规划通常以连续区间的求解作为子问题,例如区间 [i, j] 上的最优解用dp[i][j]表示。先在小区间上进行动态规划得到子问题的最优解,再利用小区间的最优解合并产生大区间的最优解。 …

ComfyUI高清放大的四种方式(工作流附件在最后)

方式一:Latent放大工作流 1.工作流截图 方式二:ESRGAN(传统模型)放大工作流 方式三:算法放大(后期处理)工作流 方式四:Ultimate SD Upscale工作流 这个方式的优势是对于显存底的用…

WP黑格导航主题BlackCandy

BlackCandy-V2.0全新升级!首推专题区(推荐分类)更多自定义颜色!选择自己喜欢的色系,焕然一新的UI设计,更加扁平和现代化! WP黑格导航主题BlackCandy

代码随想录第37天|动态规划

01背包理论基础 参考 01背包: 每个物品只有一个, 只要选或不选两个选项 暴力解法: 回溯法枚举 dp[i][j]: i 表示 0 ~ i 的物品, j 表示容量, 数值表示当前的最大价值递推公式: max(dp[i-1][j], dp[i-1][j-weight[i]] value[i])初始化: j 0 时, 无法放任何有价值的物品, d…

目标检测常用涨点方法:注意力机制小结(空间注意力、通道注意力、CBAM等)

1.通道注意力 通道注意力(Channel Attention)是在通道维度上对输入数据进行学习,再对不同的通道分配相应的权重表示重要性,从而达到“分配注意力”的效果。SENet(Squeeze and Excitation networks) 是一个典型的使用通…

MySQL高级-事务-并发事务演示及隔离级别

文章目录 0、四种隔离级别1、创建表 account2、修改当前会话隔离级别为 read uncommitted2.1、会出现脏读 3、修改当前会话隔离级别为 read committed3.1、可以解决脏读3.2、会出现不可重复读 4、修改当前会话隔离级别为 repeatable read(默认)4.1、解决…

C++(Python)肥皂泡沫普拉托边界膜曲面模型算法

🎯要点 🎯肥皂泡二维流体模拟 | 🎯泡沫普拉托边界膜曲面模型算法演化厚度变化 | 🎯螺旋曲面三周期最小结构生成 📜皂膜用例:Python计算物理粒子及拉格朗日和哈密顿动力学 | Python和MATLAB粘性力接触力动…

ELK企业级实战

一、Elstic stack在企业的常⻅架构 https://www.bilibili.com/video/BV1x94y1674x/?buvidXY705117E90F73A790429C9CFBD5F70F22168&vd_source939ea718db29535a3847d861e5fe37ef ELK 解决取得问题 痛点1: ⽣产出现故障后,运维需要不停的查看各种不同的⽇志进⾏…

10款好用不火的PC软件,真的超好用!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/市场上有很多软件,除了那些常见的大众化软件,还有很多不为人知的小众软件,它们的作用非常强大,简洁…

骁龙相机拍照流程分析

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 1.deliverInputEvent 拍照点击事件处理 2.submitRequestList Camera 提交拍照请求 3.createCaptureRequest 拍照请求帧数 骁龙相机通过binder 数据传输…

小程序打包

一、manifest.json文件添加小程序id 二、接口校验,后端接口添加正式上线,有域名的地址 然后到微信公众平台-开发管理-服务器域名处配置request合法域名,在 此处能够看到后端的baseUrl 三、项目部署 四、发版 在小程序编辑器里 此处可以在…

微服务之服务保护策略【持续更新】

文章目录 线程隔离一、滑动窗口算法二、漏桶算法三、令牌桶算法 面试题1、Sentinel 限流和Gateway限流的区别 线程隔离 两种实现方式 线程池隔离(Hystix隔离),每个被隔离的业务都要创建一个独立的线程池,线程过多会带来额外的CPU…

Android跨进程通信,binder传输数据过大导致客户端APP,Crash,异常捕获,监听异常的数值临界值,提前Hook拦截。

文章目录 Android跨进程通信,binder传输数据过大导致Crash,异常捕获,监听异常的数值临界值,提前Hook拦截。1.binder在做跨进程传输时,最大可以携带多少数据1.1有时候这个1m的崩溃系统捕获不到异常, 2.监测异…

大模型系列课程学习-基于2080TI-22G魔改卡搭建双卡大模型训练平台(双系统)

1.选择合适的硬件配置 再配置电脑之前,需要确认自己需要的显存大小、主板、内存条、电源、散热等核心配件。经过前期调研,选择的硬件配置如下: (1)主板:华南X99_F8D(DDR4主板),因为需要支持双卡…

springboot 3.x相比之前版本有什么区别

Spring Boot 3.x相比之前的版本(尤其是Spring Boot 2.x),主要存在以下几个显著的区别和新特性: Java版本要求: Spring Boot 3.x要求至少使用Java 17作为最低版本,同时已经通过了Java 19的测试,…

【C语言】指针剖析(完结)

©作者:末央& ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨,书写未来之大梦 目录 回调函数概念回调函数的使用 - qsort函数 sizeof/strlen深度理解概念手脑并用1.sizeof-数组/指针专题2.strlen-数组/指针专题 指针面试题专题 回调函…

C++ | Leetcode C++题解之第205题同构字符串

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isIsomorphic(string s, string t) {unordered_map<char, char> s2t;unordered_map<char, char> t2s;int len s.length();for (int i 0; i < len; i) {char x s[i], y t[i];if ((s2t.coun…

HDFS详细介绍以及HDFS集群环境部署【hadoop组件HDFS笔记】(图片均为学习时截取的)

HDFS详细介绍 HDFS是什么 HDFS是Hadoop三大组件(HDFS、MapReduce、YARN)之一 全称是&#xff1a;Hadoop Distributed File System&#xff08;Hadoop分布式文件系统&#xff09;&#xff1b;是Hadoop技术栈内提供的分布式数据存储解决方案 可以在多台服务器上构建存储集群&…

C : 线性规划例题求解

Submit Page TestData Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 93 Solved: 49 Description 求解下述线性规划模型的最优值min &#xfffd;1&#xfffd;1&#xfffd;2&#xfffd;2&#xfffd;3&#xfffd;3&#xfffd;.&#xfffd;. &…