windows配置使用supervisor

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、使用步骤
    • 1.安装supervisor-win
    • 2.配置supervisord
    • 3.配置program
    • 4.启动supervisord.exe
    • 5.supervisorctl.exe管控
  • 二、后台启动
  • 总结


前言

windows使用supervisor和linux略有不同,严格来说比linux略难,而且不是所有的特性都支持。


一、使用步骤

1.安装supervisor-win

其实有一个纯exe版本的supervisor,但是实际使用起来比python版的功能差些。所以,经过对比还是supervisor-win更有性价比。

建议使用anaconda3,因为本篇文章基于annaconda3,原生python目录请自行查找,这里不再赘述。

pip install supervisor-win -i https://mirrors.aliyun.com/pypi/simple

安装完成后在anaconda的Scripts下面有exe文件。用到的就红框括起来的几个exe。
在这里插入图片描述

2.配置supervisord

使用过linux的都知道/etc/supervisor.conf是配置文件,windows上的配置文件需要用命令生成。

echo_supervisord_conf.exe > D:\supervisord.conf

可以指定目录,不一定非得是D盘。

3.配置program

直接在supervisord.conf里面填就行了。下面是conf示例:

[program:theprogramname]
command=cmd.exe               ; the program (relative uses PATH, can take args)
directory=%(ENV_TMP)s         ; directory to cwd to before exec (def no cwd)
autostart=true                ; start at supervisord start (default: true)
startsecs=1                   ; # of secs prog must stay up to be running (def. 1)
startretries=3                ; max # of serial start failures when starting (default 3)
autorestart=unexpected        ; when to restart if exited after running (def: unexpected)
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 (0 means none, default 10)

在supervisord.conf里面 ; 符号是行注释的意思,去掉行注释,这一行就会被supervidord.exe解析。

字段解释:
[program:theprogramname] : 固定写法,theprogramname是程序名字,英文。
command : 需要执行的命令,建议使用绝对路径,而且必须是linux那种正斜杠 / 分割目录
directory : 工作目录
autostart : 自动启动,默认开启
startsecs : 程序至少需要维持1秒才被认为启动成功
startretries : 启动失败尝试次数
autorestart : 自动重新启动,如果程序意外退出生效(保活功能)
redirect_stderr : 重定向标准错误日志输出到标准输出,也可以单独输出,依据喜好。
stdout_logfile : 标准输出目录,可以是反斜杠。目录一定要存在,否则报错。
stdout_logfile_maxbytes : 单文件最大空间,超过了另起一个文件
stdout_logfile_backups : 最多保持的日志文件数

4.启动supervisord.exe

配置好了,就可以管控程序了,实测exe程序都可以管控,有些bat报错,还在研究原因

再此之前还需要改supervidsord.conf的两个地方,这样supervisorctl.exe才能正常工作,没错supervisorctl.exe和supervisord.exe是通过网络连接的。

#默认的配置
;[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)

#改为
[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)

需要用户名密码就解开username和password的注释。

#默认配置
[supervisorctl]
;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
;username=chris              ; should be same as in [*_http_server] if set
;password=123                ; should be same as in [*_http_server] if set
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history  ; use readline history if available

#改为
[supervisorctl]
serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
;username=chris              ; should be same as in [*_http_server] if set
;password=123                ; should be same as in [*_http_server] if set
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history  ; use readline history if available

需要用户名密码就解开username和password的注释。

就这样基础配置基本完事了,需要其他功能的自行配置。

启动supervisord.exe才能管控程序

‪D:\conda\envs\supervisord\Scripts\supervisorctl.exe -c D:\conda\envs\supervisord\Scripts\supervisord.conf

这种启动方式是前台启动,cmd关掉就没了。

5.supervisorctl.exe管控

#重新加载,修改了supervisord.conf必须reload
D:\conda\envs\supervisord\Scripts\supervisorctl.exe reload

#查看状态
D:\conda\envs\supervisord\Scripts\supervisorctl.exe status

#启动程序
D:\conda\envs\supervisord\Scripts\supervisorctl.exe start <program name>

#停止程序
D:\conda\envs\supervisord\Scripts\supervisorctl.exe stop <program name>

这里不多介绍了,基本和linux差不多。

二、后台启动

有好几种方法,这里介绍一种vbs方法

supervisord.vbs

Set ws = CreateObject("Wscript.Shell")
ws.run "D:\Work\Anaconda\envs\supervisord\Scripts\supervisord.exe -c D:\conda\envs\supervisord\Scripts\supervisord.conf",vbhide

双击supervisord.vbs,supervisord.exe就在后台启动了,解析来就可以使用supervisorctl.exe管控了。


总结

1、比linux上的略差些,但是基本功能都有,可以满足使用需求。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PromptRank:使用Prompt进行无监督关键词提取

论文题目&#xff1a;PromptRank: Unsupervised Keyphrase Extraction Using Prompt   论文日期&#xff1a;2023/05/15(ACL 2023)   论文地址&#xff1a;https://arxiv.org/abs/2305.04490   GitHub地址&#xff1a;https://github.com/HLT-NLP/PromptRank 文章目录 Ab…

虽然在不同设备上会出现同样的原神错误代码9907,但解决办法因设备而异

你是不是很享受在原神(Genshin Impact)中的神奇旅程,但错误代码9907出现了?与PS4控制台中全面讨论PS4的错误CE-34878-0不同,本文关注的是原神错误本身。本文不仅讨论了这个错误背后的原因,还讨论了每种类型设备的具体解决方案。 在Microsoft Windows/PC上修复错误代码99…

NSSCTF第14页(2)

[UUCTF 2022 新生赛]ezpop 提示说看看反序列化字符串逃逸 PHP反序列化字符串逃逸_php反序列化逃逸-CSDN博客 php反序列化字符逃逸_php反序列化逃逸_Leekos的博客-CSDN博客 buuctf刷题9 (反序列化逃逸&shtml-SSI远程命令执行&idna与utf-8编码漏洞)_extract($_post);…

Linux 基本语句_12_信号

用途&#xff1a; 信号可以直接进行用户进程与内核进程之间的交互 特性&#xff1a; 对于一个进程&#xff0c;其可以注册或者不注册信号&#xff0c;不注册的信号&#xff0c;进程接受后会按默认功能处理&#xff0c;对于注册后的信号&#xff0c;进程会按自定义处理 自定义…

vue3 keep-alive页面切换报错:parentComponent.ctx.deactivate is not a function

问题&#xff1a; <router-view v-slot"{ Component }"><keep-alive ><component :is"Component" v-if"$route.meta.keepAlive" /></keep-alive><component :is"Component" v-if"!$route.meta.keepA…

FFmpeg之将视频转为16:9(横屏)或9:16(竖屏)(一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

全网最牛最全面的Jmeter接口测试:jmeter_逻辑控制器_事务控制器

事务&#xff1a; 性能测试中&#xff0c;事务指的是从端到端&#xff0c;一个完整的操作过程&#xff0c;比如一次登录、一次 筛选条件查询&#xff0c;一次支付等&#xff1b;技术上讲&#xff1a;事务就是由1个或多个请求组成的 事务控制器 事务控制器类似简单控制器&…

Selenium——isDisplayed()、isEnabled()、isSelected()

判断页面是否存在某元素 Selenium没有直接提供判断是否存在的方法&#xff0c;可以使用findElements返回的数量判断&#xff1b;或者判断findElement是否抛出异常 webDriver.findElements(By.xpath("(//div[classel-button-group]//button)[1]")).size()isDisplaye…

分享72个简历竞聘PPT,总有一款适合您

分享72个简历竞聘PPT&#xff0c;总有一款适合您 72个简历竞聘PPT下载链接&#xff1a;https://pan.baidu.com/s/1EGqu8ufs8nh45NliNniWuQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整…

BUUCTF john-in-the-middle 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 注意&#xff1a;得到的 flag 请包上 flag{} 提交 密文&#xff1a; 下载附件&#xff0c;解压得到john-in-the-middle.pcap文件。 解题思路&#xff1a; 1、双击文件&#xff0c;打开wireshark。 看到很多http流…

Go 语言输出文本函数详解

Go语言拥有三个用于输出文本的函数&#xff1a; Print()Println()Printf() Print() 函数以其默认格式打印其参数。 示例 打印 i 和 j 的值&#xff1a; package mainimport "fmt"func main() {var i, j string "Hello", "World"fmt.Print(…

深入学习redis-基于Jedis通过客户端操作Redis

目录 redis客户端&#xff08;JAVA&#xff09; 配置 引入依赖 建立连接 常用命令实现 get/set exists/del keys expire和ttl type 字符串&#xff08;String&#xff09; mget和mset getrange和setrange append incr和decr 列表&#xff08;list&#xff09; …

【C++ Primer Plus学习记录】循环和文本输入

目录 1.使用原始的cin进行输入 2.使用cin.get(char)进行补救 3.使用哪一个cin.get() 4.文件尾条件 循环完后的一项最常见、最重要的任务&#xff1a;逐字符地读取来自文件或键盘的文本。 cin对象支持3种不同模式的单字符输入&#xff0c;其用户接口各不相同。下面介绍如何…

一种快速设计射频功放IC流程分享

No.1设计目标 在功率放大器PA中&#xff0c;输出级以及输出匹配决定了该功放的线性度、效率等关键性能指标&#xff0c;通常被优先考虑。在这个项目中输出级功放关键性能指标如下&#xff1a; 带宽&#xff1a;12-13 GHz OP1dB>13dBm 输出级 Power gain>5dB DE_P1dB&…

K歌利器-无线K歌麦克风模组-投影K歌解决方案

麦克风K歌模组是一种用于改善音频质量的麦克风系统&#xff1b;其发展可以追溯到20世纪50年代&#xff0c;如今&#xff0c;麦克风模组的技术发展已经非常成熟&#xff0c;可以提供更为优质的音频质量&#xff1b;支持多种不同的连接方式&#xff1b;可以在不同的设备上使用。 …

获取焦点后,样式异常的处理方法

问题 在使用monaco-editor 设置代码提示未正常显示&#xff0c;提示框出现&#xff0c;看不到内容&#xff0c;如图 看不到内容&#xff0c;有两种情况&#xff1a; 情况一&#xff1a;没有得到数据&#xff0c;所以没有展示&#xff1b; 情况二&#xff1a;得到了数据&#x…

Python协程技术:从Greenlet到async/await的异步编程探索

协程&#xff1a; ​ 协程&#xff0c;在Python中&#xff0c;协程是一种轻量级的并发编程方式&#xff0c;它允许在单个线程内实现多个独立的执行流。协程可以在不同的执行点之间进行切换&#xff0c;而无需依赖于操作系统的线程切换。这使得协程成为处理高并发和异步任务的有…

AI质差小区优化效果评估

1. 下行流量/PRB利用率和贬损用户的关系 通过分析长期贬损质差小区&#xff1a;下行PRB利用率/流量和小区平均每小时质差用户数成正比例关系&#xff0c;即小区的贬损用户会随PRB利用率/流量的增长而增长。 2. 贬损用户和流量走势 年前平均每天流量平稳的情况下&#xff0c;通…

世微AP5125 DC-DC降压恒流 LED车灯电源驱动IC SOT23-6

产品描述 AP5125 是一款外围电路简单的 Buck 型平均电流检测模式的 LED 恒流驱动器&#xff0c;适用于 8-100V 电压范围的非隔离式大功率恒流 LED 驱动领域。芯片采用固定频率 140kHz 的 PWM 工作模式&#xff0c; 利用平均电流检测模式&#xff0c;因此具有优异的负载调整 率…

酵母双杂交服务专题(三)

当开始研究某个基因时&#xff0c;除了识别其功能之外&#xff0c;还必须分析它与其他蛋白质或分子的相互作用关系。这是因为基因通常不是孤立发挥作用&#xff0c;而是通过与其他蛋白或分子的互动参与调节下游基因的表达。酵母双杂交技术是检测蛋白质间相互作用的一种标准方法…