加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Linux进程管理工具supervisor安装配置教程

发布时间:2022-12-08 14:01:27 所属栏目:Unix 来源:互联网
导读: ;port=127.0.0.1:9001 ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
;username=user ;登录管理后台的用户名
;password=123 ;登录管理后台的密码
[supervisord]
logfile=/t

;port=127.0.0.1:9001 ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性

;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

; [program:xx]是被管理的进程配置参数,xx是进程的名称

[program:xx]

command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run ; 程序启动命令

autostart=true ; 在supervisord启动的时候也自动启动

startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒

autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启

startretries=3 ; 启动失败自动重试次数,默认是3

user=tomcat ; 用哪个用户启动进程,默认是root

priority=999 ; 进程启动优先级,默认999,值小的优先启动

redirect_stderr=true ; 把stderr重定向到stdout,默认false

stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认50MB

stdout_logfile_backups = 20 ; stdout 日志文件备份数,默认是10

; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)

stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out

stopasgroup=false ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程

killasgroup=false ;默认为false,向进程组发送kill信号,包括子进程

;包含其它配置文件

[include]

files = supervisord.d/*.ini ;可以指定一个或多个以.ini结束的配置文件

配置Tomcat测试

/etc/supervisord.d/tomcat.ini

[program:tomcat]

command=/opt/apache-tomcat-8.0.44/bin/catalina.sh run

stdout_logfile=/opt/apache-tomcat-8.0.44/logs/catalina.out

autostart=true

autorestart=true

startsecs=5

priority=1

stopasgroup=true

killasgroup=true

重启supervisor

supervisord -c /etc/supervisord.conf

查看

[root@gr5bm1tynui4toof-0622769 system]# supervisorctl

tomcat RUNNING pid 21609, uptime 0:25:15

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Supervisor的安装和入门

前几天准备部署一个go应用,由于目前go的daemon方案还不完善,只能借助其他工具进行部署,所以发现了一个非常好用的进程管理工具——Supervisor。 Supervisor () 是用Python实现的一款非常实用的进程管理工具。

本文将介绍如何在CentOS上Supervisor的安装和使用。 可以先运行以下命令看系统是否安装了python,以及python的版本 [root@192 ~]# python -V Supervisor需要的python版本是python2 2.4以上(暂未明确是否支持python3) 如果系统没有安装python2的话,可以使用系统自带安装工具安装python2 [root@192 ~]# yum install python2 再安装python包管理工具 easy_install [root@192 ~]# yum install python-setuptools 使用easy_install安装supervisor [root@192 ~]# easy_install supervisor 验证是否安装成功 [root@192 ~]# supervisord -v 注意:supervisor的命令是supervisord,命令比名称多一个d supervisor主要是两个命令: 执行如下命令 [root@192 ~]# echo_supervisord_conf 我们可以看到一份标准的配置文件模板 下面简单说明(翻译)一下这份模板 这个配置文件包含了supervisor主进程配置和应用程序(我们希望被管理的程序)配置,一般推荐将主程序配置和应用程序配置分开配置。

配置文件里面默认将很多文件放置到/tmp/下,但是有时候系统会自动清理该目录的文件,导致supervisor无故挂掉或者控制不了,所以我们需要先创建几个目录来存放文件 首先,推荐创建 /etc/supervisord.d/ 来放置应用程序的配置 然后,推荐创建 /var/supervisord/ 来放置sock和pid文件 最后,推荐创建 /var/supervisord/log/ 来放置日志文件 下面的操作都是以这几个路径来配置 生成主进程配置文件 [root@192 ~]# echo_supervisord_conf > /etc/supervisord.conf 注意:主配置文件请以这个名称放在这个目录,如果放在其他地方请创建一个软连接,否则supervisorctl将无法管理应用程序 下面讲一些需要修改的地方,不需要修改的保持原样即可 首先,在 /etc/supervisord.d/ 创建一个 ini 文件 [root@192 ~]# vim /etc/supervisord.d/demo.ini 然后把 [program:theprogramname] 模块整个拷贝进去 同样,讲一些需要修改的地方 这样就配置完成了 [root@192 ~]# supervisord -c /etc/supervisord.conf 使用该命令启动supervisor 查看是否启动成功 [root@192 ~]# supervisorctl status 可以看到,我们刚才配置的 demo_cat 程序已经在运行了 主要是通过 supervisorctl 来管理应用程序 同时,根据上面的配置,supervisor会重定向应用程序的输出,并保存到 /var/supervisord/log 里面 新建开机启动服务 [root@192 ~]# vim /lib/systemd/system/supervisord.service 在supervisord.service中添加以下内容: 将服务脚本添加到systemctl自启动服务: [root@192 ~]# systemctl enable supervisord.service 重启系统测试开机启动。 这个问题网上很多人说是防火墙问题,他们的解决办法都不适用。

supervisor是本地服务,跟防火墙没有关系。后面我发现是因为 supervisorctl 默认在 /etc/ 里面有 supervisord.conf 。所以如果你的 /etc/ 里面没有 supervisord.conf ,建议你建个软连接,把主程序配置文件连接过来。

例如: [root@192 ~]# ln -s /etc/supervisord.conf /etc/supervisord.conf 这个问题是因为supervisor没有启动导致的。请确认superviosr是否已经启动。 这个问题是因为sock文件不见了。

sock文件被删除一般是因为放在默认的 /tmp/ 里面被系统删除了。也有可能跟我一样,根据网上其他supervisor开机自启动的办法,将 supervisrod.conf 里面的 nodaemon=false 改成true,导致系统一直重启supervisor,sock文件也就会一直被删除和创建。 本人也是新手,欢迎大家一起讨论学习。

后面有新的学习经验和体会会进一步更新。

Supervisord安装和配置

推荐使用 yum 安装(easy_install安装有坑): 默认配置文件:/etc/supervisord.conf 进程管理配置文件放到:/etc/supervisord.d/目录下即可 编辑配置文件 参考地址注: 运行supervisord服务的时候,需要指定supervisor配置文件UNIX 进程管理,如果没有显示指定,默认在以下目录查找: $CWD表示运行supervisord程序的目录。 touch crawl_syn_server.ini 参数说明: program: 程序名称,名字不同于进程名子 user=root: 用哪个用户启动进程,默认是root command: 执行的命令,最好写绝对路径 directory: 执行命令的路径 autostart: 随supervisor启动 startsecs: 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒 autorestart: 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启 startretries=60 : 启动失败自动重试次数,默认是3 priority=999: 进程启动优先级,默认999,值小的优先启动 redirect_stderr: 把stderr重定向到stdout,默认false stdout_logfile_maxbytes=50MB : stdout 日志文件大小,默认50MB stdout_logfile_backups = 10 : stdout 日志文件备份数,默认是10 stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件) stdout_logfile=/var/log/supervisord/queue-groupon-success-listen.log stderr_logfile=/var/log/supervisord/queue-groupon-success-listen.log loglevel=info : 日志的级别 stopasgroup=false: 默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程 killasgroup=false: 默认为false,向进程组发送kill信号,包括子进程

1.交互终端 supervisord启动成功后,可以通过supervisorctl客户端控制进程,启动、停止、重启。

supervisor 使用教程

官网为 Supervisor是使用python开发的一个进程管工具,安装和使用都非常简单。使用 pip 或者 easy_install 安装会非常方便,自动解决依赖关系。

supervisorctl 用于管理supervisor服务,管理使用supervisor启动的进程。 安装好supervisor后需要手动的生成配置文件。 echo_supervisord_conf | sudo tee /etc/supervisord.conf supervisor默认读取的配置文件为 /etc/supervisord.conf ,建议将配置文件放在此位置。 我们先简单的查看一下 supervisord.conf ,配置文件格式和ini格式配置文件相同,由节、键、值组成,配置文件注释为 ; 。

读取/etc/supervisor.d/文件夹下所有后缀为conf的文件。 第一步 配置第一个使用supervisord管理的程序 我们使用 python2.7 来作为演示,使用SimpleHTTPServer模块方便快速的启动一个http server。 1,创建配置文件 /etc/supervisor.d/test1.conf,写入一下内容 这是一个最简单的例子,第一行指定当前配置的程序名称。

第二行程序运行命令(20080 为 http server端口号)。 2,第一个程序已经配置好,接下来就可以启动supervisord来查看一下效果。 输入命令 sudo supervisord 即可启动服务。

很多机器会打印出几行信息,这并不代表程序出错,意思是 3,现在使用 ps -ef | grep python 来检查一下刚才配置的程序是否已经启动。到此为止我们的第一步已经完成。 必要参数只有 command,其他未可选参数。

[program:x] 自定义的程序名不能重复 配置示例 管理tornado应用 需要启动4个进程,分别监听四个连续端口(20081 – 20084)。 将错误输出定向到标准输出,每个端口标准输出写入到不同文件中,单个文件最大50MB,最多保存3个备份。 启动前等待3秒。 supervisord启动时自动启动。

程序运行出错自动重启,最大尝试重启次数3次。 nginx默认运行状态是后台运行程序。supervisord不能管理此类程序需要,需要修改nginx主配置文件。 在nginx最外层加入 daemon off; 最简单的配置。

supervisor进程管理工具,可以方便启动停止进程,查看程序日志,重新载入配置文件。 如果supervisord配置文件不再默认位置,使用supervisorctl工具时需要指定配置文件路径 supervisordctl -c 配置文件路径 常用命令 start stop restart + all 表示启动,关闭,重启所有进程。 如果一个进程启动了多个副本,例如上文 tornado-test 。

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!