supervisor的用法

supervisor是什么:

守护进程的一个工具;比如PM2ForeverPython底层写的supervisor 等等...

用法:

1、安装

 我用的是yum安装,还有其他的很多安装方式就不一一介绍,有兴趣的中级查

yum install supervisor

 2、Supervisor配置文件

echo_supervisord_conf > /disk/supervisor/supervisord.conf

3、修改默认配置文件

3.1介绍supervisord.conf

这个是我从网上找的一个关于supervisord.conf文件的一些参数介绍

[unix_http_server]
file=/tmp/supervisor.sock   ;UNIX socket 文件,supervisorctl 会使用
;chmod=0700                 ;socket文件的mode,默认是0700
;chown=nobody:nogroup       ;socket文件的owner,格式:uid:gid;[inet_http_server]         ;HTTP服务器,提供web管理界面
;port=127.0.0.1:9001        ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性3
;username=user              ;登录管理后台的用户名
;password=123               ;登录管理后台的密码[supervisord]
logfile=/tmp/supervisord.log ;日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB        ;日志文件大小,超出会rotate,默认 50MB,如果设成0,表示不限制大小
logfile_backups=10           ;日志文件保留备份数量默认10,设为0表示不备份
loglevel=info                ;日志级别,默认info,其它: debug,warn,trace
pidfile=/tmp/supervisord.pid ;pid 文件
nodaemon=false               ;是否在前台启动,默认是false,即以 daemon 的方式启动
minfds=1024                  ;可以打开的文件描述符的最小值,默认 1024
minprocs=200                 ;可以打开的进程数的最小值,默认 200[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ;通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致
;serverurl=http://127.0.0.1:9001 ; 通过HTTP的方式连接supervisord;包含其它配置文件 
[include]
files = /etc/supervisor/conf.d/*.conf    ;这里也就是包含了我们的任务配置

3.2配置supervisord.conf文件

 //修改地址,因为默认的tep为缓存地址,所有的tmp都得修改

  [unix_http_server]
 file=/var/run/supervisor/supervisor.sock ; the path to the socket file

  logfile=/var/log/supervisor/supervisord.log ; main log file; default $CWD/supervisord.log

logfile=/var/log/supervisor/supervisord.log ; main log file; default $CWD/supervisord.log
//出于安全考虑,默认配置是没有开启web管理界面,需要修改supervisord.conf配置文件打开http访权限

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



默认添加一个supervisor配置文件获取地址
[include]
files= /disk1/supervisor/conf.d/*.ini #若你本地无/etc/supervisor目录,请自建

3.3supervisor组件

这个是我从网上找的一个关于supervisor组件相关的,具体的可以查询官网

1.supervisordsupervisord是supervisor的服务端程序。干的活:启动supervisor程序自身,启动supervisor管理的子进程,响应来自clients的请求,重启闪退或异常退出的子进程,把子进程的stderr或stdout记录到日志文件中,生成和处理Event2.supervisorctl这东西还是有点用的,如果说supervisord是supervisor的服务端程序,那么supervisorctl就是client端程序了。supervisorctl有一个类型shell的命令行界面,我们可以利用它来查看子进程状态,启动/停止/重启子进程,获取running子进程的列表等等。。。最牛逼的一点是,supervisorctl不仅可以连接到本机上的supervisord,还可以连接到远程的supervisord,当然在本机上面是通过UNIX socket连接的,远程是通过TCP socket连接的。supervisorctl和supervisord之间的通信,是通过xml_rpc完成的。    相应的配置在[supervisorctl]块里面3.Web ServerWeb Server主要可以在界面上管理进程,Web Server其实是通过XML_RPC来实现的,可以向supervisor请求数据,也可以控制supervisor及子进程。配置在[inet_http_server]块里面4.XML_RPC接口这个就是远程调用的,上面的supervisorctl和Web Server就是它弄的

3.4配置了web页面;ip:9001端口访问

4、配置文件

[program:test]
directory = /home/leon/projects/usercenter ; 程序的启动目录
command = gunicorn -c gunicorn.py wsgi:app  ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true     ; 在 supervisord 启动的时候也自动启动
startsecs = 5        ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true   ; 程序异常退出后自动重启
startretries = 3     ; 启动失败自动重试次数,默认是 3
user = leon          ; 用哪个用户启动
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /data/logs/usercenter_stdout.log; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere

5、启动  

 5.1启动

supervisord -c /disk/supervisor/supervisord.conf 启动
ps aux | grep supervisord 查看是否运行
supervisorctl reload 修改program配置参数

 5.2命令

supervisord : 启动supervisor
supervisorctl reload :修改完配置文件后重新启动supervisor
supervisorctl status :查看supervisor监管的进程状态
supervisorctl start 进程名 :启动XXX进程
supervisorctl stop 进程名 :停止XXX进程
supervisorctl stop all:停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl update:根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
supervisorctl -c /disk1/supervisor/supervisord.conf

6、问题

6.1 Error: Another program is already listening on a port that one of our HTTP servers is configured to

解决方案:网上两种方案,经试验都可以
(1)杀进程
ps -aux|grep supervisord 查看进程代号
kill -9 进程代号

(2)执行下面语句

  unlink /var/run/supervisor.sock
  unlink /tmp/supervisor.sock

6.2 error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224

 解决方案:supervisord -c /disk1/supervisor/supervisord.conf来启动

6.3 unix:///var/run/supervisor/supervisor.sock no such file

创建文件

sudo touch 文件地址 例如 sudo touch /var/run/supervisor/supervisor.sock
如果不是root权限,需要给与权限
sudo chmod 777 文件地址 例如: sudo chmod 0777 /var/run/supervisor/supervisor.sock

6.4  Unlinking stale socket /var/run/supervisor.sock

unlink sock文件地址
unlink /var/run/supervisor/supervisord.sock

  大概在我安装遇到的问题还有情况就这样,其他的后续更新

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

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

相关文章

Supervisor的使用方法

Supervisor 是基于 Python 的进程管理工具 当执行一些需要以守护进程方式执行的程序&#xff0c;比如一个后台任务&#xff0c;常用它来进程管理。 Supervisor 还能友好的管理程序在命令行上输出的日志&#xff0c;可以将日志重定向到自定义的日志文件中 它有两个主要的组成部…

Supervisor使用教程

在项目中&#xff0c;经常有脚本需要常驻运行的需求。以PHP脚本为例&#xff0c;最简单的方式是&#xff1a; $ nohup php cli.php &复制代码 这样能保证当前终端被关闭或者按CRTLC后&#xff0c;脚本仍在后台运行。但是没法保证脚本异常后自动重启等。 Supervisor 是用P…

8:00面试,8:03就出来了 ,问的些许变态了吧

这年头&#xff0c;面试没两把刷子&#xff0c;还真不容易 我刚从外包出来&#xff0c;没想到还没多久就死在另一家大厂了 自从加入这家外包公司&#xff0c;每天不是在加班就是在加班的路上&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到3月一纸通知&#xff0…

supervisor的使用与管理

原文链接&#xff1a;http://blog.csdn.net/xyang81/article/details/51555473 Supervisor&#xff08;http://supervisord.org/&#xff09;是用Python开发的一个client/server服务&#xff0c;是Linux/Unix系统下的一个进程管理工具&#xff0c;不支持Windows系统。它可以很…

飞浆AI studio人工智能课程学习(4)-优质Prompt分享

文章目录 最具商业价值Prompt分享与颁奖02最具商业价值Prompt分享与颁奖-Top102最具商业价值Prompt分享与颁奖-Top202最具商业价值Prompt分享与颁奖-Top302最具商业价值Prompt分享与颁奖-Top402最具商业价值Prompt分享与颁奖-Top502最具商业价值Prompt分享与颁奖-Top602最具商业…

安装第三方库时的问题—复现带setup.py的项目

目录 题目分析&#xff1a; 正片开始&#xff1a; 题目分析&#xff1a; 事情的经过大致是这样&#xff1a; 今天在github上拿到一个处理时间序列的迁移学习项目的复现代码&#xff0c;项目文件如下所示&#xff1a; 或者我们来关注一下tl4sm这个文件夹里的东西&#xff1…

PyTorch 深度学习 || PyTorch 编程基础

PyTorch 编程基础 文章目录 PyTorch 编程基础1. backword 求梯度2. 常用的激活函数2.1 Sigmoid 函数2.2 ReLu 激活函数2.3 Leakly ReLu 激活函数 2. 常用损失函数2.1 均方误差损失函数2.2 L1范数误差损失函数2.3 交叉熵损失函数 3. 优化器 1. backword 求梯度 import torchw …

统计linux日志中请求被拒绝的ip

grep -oP dial tcp \K\S(?:[[:digit:]]) log.log.2023-06-03 | sort | uniq 结果&#xff1a;

NRF52832空中升级DFU

1.工具环境搭建 gcc-arm-none-eabi编译环境&#xff1a;GCC编译环境 Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer mingw 平台&#xff08;win版的Linux命令行&#xff09; Download MinGW - Minimalist GNU for Windows micro-ecc-master源码 GitHu…

hash传递攻击

简介 Pass the hash也就是Hash传递攻击&#xff0c;简称为PTH。模拟用户登录不需要用户明文密码只需要hash值就可以直接来登录目标系统。 利用前提条件是&#xff1a; 开启445端口开启ipc$共享 Metasploit pesexec模块 windows/smb/psexec 这里主要设置smbuser、smbPass …

月互联网十大热词出路 世博庙会、天上人间入选

世 博庙会、世 界杯家规、伪娘、京 十二条、菜奴、天 上人间、词媒体、零薪族、张悟本 世 博庙会 世博庙会是互动百科的智愿者针对上海世博会里游人熙熙攘攘排队、热热闹闹拍照、匆匆忙忙盖章的“走马观花”式的逛庙会游览方式的一种形象说法。世 界杯家规 世界杯家规&#xf…

2011最新整理分享平台代码参考

平台代码URL115收藏夹115http://fav.115.com139社区139http://www.139.com139邮箱139mailhttp://mail.10086.cn42区42quhttp://42qu.com5151http://www.51.com淘男网51taonanhttp://www.51taonan.com豆瓣9点9dianhttp://9.douban.com/就喜欢网9favhttp://www.9fav.comAsk.comas…

Web的基本漏洞--越权漏洞

目录 一、越权漏洞介绍 1.越权漏洞的原理 2.越权漏洞的分类 3.越权漏洞产生的原因 一、越权漏洞介绍 越权漏洞指的是应用在检查授权时存在纰漏&#xff0c;可以让攻击者获得低权限用户账户后&#xff0c;利用一些方式绕过权限检查&#xff0c;可以访问或者操作其他用户或者…

DevOps该怎么做?

年初在家待了一段时间看了两本书收获还是挺多的. 这些年一直忙于项目, 经历了软件项目的每个阶段, 多多少少知道每个阶段是个什么, 会做哪些事情浮于表面, 没有深入去思考每个阶段背后的理论基础, 最佳实践和落地工具. 某天leader说你书看完了, 只有笔记没有总结, 你就写个总结…

Java009——Java数据类型简单认识

围绕以下3点学习&#xff1a; 1、什么是Java数据类型&#xff1f; 2、Java数据类型的作用&#xff1f; 3、Java有哪些数据类型&#xff1f; 4、熟悉Java8大基本数据类型 一、什么是Java数据类型&#xff1f; 当我们写Java代码时&#xff0c;需要把数据保存在变量&#xff08;…

win7系统卸载360管家之后无法上网怎么回事?

win7系统卸载360管家之后无法上网怎么回事&#xff1f;有用户电脑安装的360管家软件卸载了之后&#xff0c;发现网络连接也同时出现了错误。那么这个情况是什么原因呢&#xff1f;接下来一起来看看如何解决因为卸载360软件而导致的电脑无法上网问题的解决方法吧。 解决方法 1、…

360天擎无密码退出和卸载

无密码退出 删除配置&#xff08;360Safe\EntClient\conf\EntBase.dat&#xff09; **注&#xff1a;**删除时提示权限不够无法删除&#xff0c;使用360自带的文件粉碎机将文件粉碎即可无密码退出360天擎&#xff08;重新打开程序时EntBase.dat会再次生成&#xff09; 修改配置…

idesk卸载教程_【亲测可行】Autodesk 卸载工具,一键完全彻底卸载删除autodesk软件专门卸载工具...

autodesk卸载工具(AUTO Uninstaller)是专门为了针对autodesk类软件卸载不干净而导致autodesk安装失败问题进行研发的autodesk一键卸载工具。现在虽然360或一些卸载软件提供了强力卸载autodesk的工具&#xff0c;可以将autodesk注册表和一些autodesk目录的autodesk残留信息删除&…

关闭/卸载360画报/壁纸

前言 360画报和360壁纸指的是同一个组件&#xff0c;只是称呼不同&#xff0c;下文简称360画报&#xff0c;是360安全卫士和360安全浏览器自动安装的组件之一&#xff0c;是可以被关闭和卸载的。此组件会自动开启360屏保&#xff0c;用户不喜欢可以进行关闭或卸载。下文介绍关…

mysql删除工具_有没有mysql卸载工具

展开全部 没有工具&#xff0c;手工清理就636f707962616964757a686964616f31333365636633可以了。 1.打开命令行&#xff0c;运行命令 net start&#xff0c;查看一下mysql服务&#xff0c;如果开启就使用命令 net stop mysql 将其关闭。 注&#xff1a;如果提示无法关闭&#…