进程管理工具

目录

一、进程管理工具(Supervisor) 简介

二、Supervisor安装与配置

介绍Supervisor


一、进程管理工具(Supervisor) 简介

Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

二、Supervisor安装与配置

centos 
yum install supervisoralpine
apk add supervisor

安装 Supervisor 后,会出现 supervisorctl 和 supervisord 两个程序,其中 supervisorctl 为服务监控终端,而 supervisord 才是监控服务进程的。

介绍Supervisor

- supervisord

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

- supervisorctl

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

supervisor是所有进程的父进程,管理着启动的子进展,supervisor以子进程的PID来管理子进程,当子进程异常退出时supervisor可以收到相应的信号量。

配置文件说明
默认配置文件位置在/etc/supervisord.conf
主配置部分
[unix_http_server] 
file=/tmp/supervisor.sock ; socket文件的路径 
;chmod=0700 ;socket文件权限 
;chown=nobody:nogroup ; socket文件用户和用户组 
;username=user ; 连接时认证的用户名 
;password=123 ; 连接时认证的密码 [inet_http_server] ; 监听TCP 
port=127.0.0.1:9001 ; 监听ip和端口 
username=user ; 连接时认证的用户名 
password=123 ; 连接时认证的密码 [supervisord] 
logfile=/var/log/supervisord.log ; log目录 
logfile_maxbytes=50MB ; log文件最大空间 
logfile_backups=10 ; log文件保持的数量 
loglevel=info ; log级别 
pidfile=/var/run/supervisord.pid 
nodaemon=false ; 是否非守护进程态运行 
minfds=1024 ; 系统空闲的最少文件描述符 
minprocs=200 ; 可用的最小进程描述符 
;umask=022 ; 进程创建文件的掩码 
;identifier=supervisor ; supervisord标识符 
;directory=/tmp ; 启动前切换到的目录 
;nocleanup=true ; 启动前是否清除子进程的日志文件 
;childlogdir=/tmp ; AUTO模式,子进程日志路径 
;environment=KEY="value" ; 设置环境变量 [rpcinterface:supervisor] ; XML_RPC配置 
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] 
serverurl=unix:///tmp/supervisor.sock ; 连接的socket路径 
;username=chris ; 用户名 
;password=123 ; 密码 
prompt=mysupervisor ; 输入用户名和密码时的提示符 
;history_file=~/.sc_history ; 历史操作记录存储路径 [include] ; 包含文件,将每个进程配置为一个文件并包含 
files = /etc/supervisor/*.ini ; 多个进程的配置文件
这部分不需要做太多的配置修改,如果需要开启 WEB 终端监控,则需要配置并开启 inet_http_server 项。
进进程程配配置置部部分分
Supervisor 需管理的进程服务配置,示例如下:
[program:work] ; 服务名,例如work 
command=php /var/www/html/consumer.php ; 带有参数的可执行命令 
process_name=%(process_num)s ; 进程名,当numprocs>1时,需包含%(process_num)s 
numprocs=2 ; 启动进程的数目数 
;directory=/tmp ; 运行前切换到该目录 
;umask=022 ; 进程掩码 
;priority=999 ; 子进程启动关闭优先级 
autostart=true ; 子进程是否被自动启动 
startsecs=1 ; 成功启动几秒后则认为成功启动 
;startretries=3 ; 子进程启动失败后,最大尝试启动的次数 
autorestart=unexpected ; 子进程意外退出后自动重启的选项,false, unexpected, true。unexpected表示不在exitcodes列表时重启 
exitcodes=0,2 ; 期待的子程序退出码 
;stopsignal=QUIT ; 进程停止信号,可以为TERM,HUP,INT,QUIT,KILL,USR1,or USR2等信号,默认为TERM ;stopwaitsecs=10 ; 发送停止信号后等待的最大时间 
;stopasgroup=false ; 是否向子进程组发送停止信号 
;killasgroup=false ; 是否向子进程组发送kill信号 
;redirect_stderr=true ; 是否重定向日志到标准输出 
stdout_logfile=/var/www/html/logs/work.log ; 进程的stdout的日志路径 
;stdout_logfile_maxbytes=1MB ; 日志文件最大大小 
;stdout_logfile_backups=10 
;stdout_capture_maxbytes=1MB 
;stderr_logfile=/a/path ; stderr的日志路径
启动
配置完成后,启动 supervisord 守护服务: $ supervisord -c /etc/supervisord.conf
命令终端
直接使用 supervisorctl 即可在命令行终端查看所有服务的情况,如下:
$ supervisorctl
supervisorctl 常用命令列表如下:
status :查看服务状态
update :重新加载配置文件
restart :重新启动服务
stop :停止服务
pid :查看某服务的 pid
tail :输出最新的 log 信息
shutdown :关闭 supervisord 服务

 

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

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

相关文章

QLoRA:量化 LLM 的高效微调

此 repo 支持论文“QLoRA:量化 LLM 的高效微调”,旨在使对 LLM 研究的访问民主化。 QLoRA 使用bitsandbytes进行量化,并与 Hugging Face 的PEFT和transformers库集成。QLoRA 由华盛顿大学 UW NLP 小组的成员开发。 概述 我们介绍了 QLoRA&…

访问学者申请中4个难点解析

近年来,越来越多的学者希望通过申请成为访问学者来扩展他们的研究领域和学术交流。然而,访问学者申请过程中存在一些难点,下面知识人网来解析其中的4个难点。 首先,第一个难点是选择适合的研究机构。访问学者需要仔细考虑自己的研…

Fiddler抓包工具之高级工具栏中的Inspectors的使用

高级工具栏中的Inspectors的使用 Inspectors 页签允许你用多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合http标准的请求和响应头。Cookies标签可以看到…

人才“选用育留”难?做好这步,人力资源或许比你想象的更轻松

人才作为企业生存和发展最重要的资源之一,如何发现、使用、培养、留住优秀人才是所有企业人力资源管理的关键。但在实际场景当中,“招聘流程长造成人才流失”、“员工招聘不精准、效率低”、“员工培育周期长、成本高”、“优秀人才留不住”等问题正深深…

win10系统怎么安装显卡驱动,驱动人生详细教程

驱动人生的用户跟小编咨询说,windows10系统要怎么安装显卡驱动?或者win10怎样安装网卡驱动、声卡驱动等等驱动程序 其实是很简单的,下面小编在这里给大家介绍一下用驱动人生安装显卡驱动的具体步骤 1、打开**驱动人生**选择设备管理器,然后…

驱动人生解决“检测到你的驱动版本比较低”的问题

有驱动人生用户反应在电脑上用模拟器玩阴阳师游戏的时候被提示“检测到你的驱动版本比较低”,造成这个情况可能是电脑驱动没有更新或电脑没有达到阴阳师游戏的最低配置,驱动人生建议按照以下方法解决。 一:驱动没有更新的解决方案 驱动没有…

电脑显卡驱动错误代码43怎么办?驱动人生解决方案

如果驱动人生8全面诊断提示显卡代码43,那就可能意味着这个显卡有质量问题。因为显卡代码43至少90%以上概率都是显卡物理性坏了。 如果你想解决显卡代码43问题,建议按照驱动人生的解决方案一个一个去尝试看看能不能解决。本文有点长,请耐心看…

驱动人生2014 v6.0.9.70 绿色版

驱动人生2014 v6.0.9.70 绿色版 软件大小:16.5MB 软件语言:简体中文 软件性质:常用软件 软件授权:绿色版 更新时间:2014-04-02 应用平台:/Win8/Win7/WinXP 驱动人生2014是一款电脑硬件驱动管理软件&a…

蓝牙规范系列--经典蓝牙概述(第一篇)

一、目的 从本篇开始介绍经典蓝牙的基础知识,内容较多故会分成多篇进行介绍。 经典蓝牙(BR/EBR)射频(物理层PHY)工作在免授权的2.4G ISM频段(2400 - 2483.5 MHz),使用跳频技术来对抗…

驱动人生8全新升级,开启2021全面时代

驱动人生8将在4月14日全新升级,开启全面时代! 驱动人生8此次更新将为游戏用户带来更加精准的解决方案。      不仅如此,更是将声卡等一系列电脑问题一网打尽,可谓是全球独有的解决方案! 驱动人生8新的全面诊断功能,可自动化…

驱动人生提供win11安装Google Play商店详细教程

据驱动人生消息道:微软目前已经开始在Win11的测试渠道推送安卓子系统,以让Win11兼容安卓App。 当前,Win11中安卓App的官方分发渠道是亚马逊应用商店,但用户也可以通过SideLoad侧载安卓APK。 但目前,开发者们又发现了…

电脑卡死、死机、黑屏怎么办?驱动人生教你如何解决

驱动人生收到一些用户留言,电脑卡屏死机黑屏怎么解决? 有人会遇到电脑经常死机,但是又是个电脑小白,处理起来就显得较为吃力。 对于卡屏死机,我们最常应对的方法便是“重启”! 但除此之外,我们还有什么其他办法能解…

如何零基础自学网络安全?

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解…

Pb协议的接口测试

【摘要】 Protocol Buffers 是谷歌开源的序列化与反序列化框架。它与语言无关、平台无关、具有可扩展的机制。用于序列化结构化数据,此工具对标 XML ,支持自动编码,解码。比 XML 性能好,且数据易于解析。更多有关工具的介绍可参考…

nopi 缩小字体填充_我在超市里改字体

- 今天,2020年第一天,送篇字体教程给大家,让大家在学习中拥抱这新的一年,嗯,我们就是这么贴心呢! 这次主题是《我在超市改字体》,前段时间,我带工作室小伙伴们去楼下超市拍了一些产品包装上的图…

可扩展性与生态应用:Ardor公链AMA回顾

近日,Jelurida团队工程师Francisco Sarrias做客CryptoWallet.com,分享了一些有关Ardor的话题: Ardor是什么? Ardor是一个旨在提高区块链可扩展性的开源平台,这意味着该项目有助于使区块链网络运行更顺畅,用…

100天精通Golang(基础入门篇)——第1天:学习Go语言基本概念

🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《I…

什么是压力测试?如何进行Jmeter压力测试

一、什么是压力测试 软件测试中:压力测试(Stress Test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、…

2023网安164道面试题(附答案)

最近有不少小伙伴跑来咨询: 想找网络安全工作,应该要怎么进行技术面试准备?工作不到 2 年,想跳槽看下机会,有没有相关的面试题呢? 为了更好地帮助大家高薪就业,今天就给大家分享两份网络安全工…

安装MySQL出现:无法定位序数4699于动态链接库 ...\bin\mysqld.exe

在安装MySQL的时候,在Apply Configuration中的Initializing Database出现错误,具体如下所示: 出错的原因及对应的解决办法如下: (1)卸载老版本的MySQL数据库没有卸载干净,建议重新卸载老版本的…