我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在Centos7使用superviso

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在Centos7使用superviso

置顶:
推荐使用pip install supervisor安装最新版supervisor,yum install supervisor最高版本3.1.4,有很多bug

名称解释

supervisor:要安装的软件的名称。
supervisord:装好supervisor软件后,supervisord用于启动supervisor服务。
supervisorctl:用于管理supervisor配置文件中program。

使用yum安装

yum install epel-release
yum install supervisor

systemctl enable supervisord.service # 开机自启动
systemctl start supervisord.service # 启动supervisord服务
systemctl status supervisord.service # 查看supervisord服务状态

# 开启web服务:修改supervisord.conf ,inet_http_server节点取消注释。
vim /etc/supervisord.conf 
supervisorctl reload
[inet_http_server]         ; inet (TCP) server disabled by default
port=*:9001        ; (ip_address:port specifier, *:port for all iface)
username=clark              ; (default is no username (open server))
password=123456               ; (default is no password (open server))

ps -ef|grep supervisord # 查看是否存在supervisord进程

应用配置

Supervisor 管理应用的进程,需要对每个应用进行配置。在 /etc/supervisord.d 中创建 helloworld.ini,每个应用对应一个配置文件即可。
下面是配置文件的示例:

[program:helloworld]  ;程序的名称
command = dotnet HelloWorld.dll ;执行的命令
directory = /root/www/ ;命令执行的目录
environment = ASPNETCORE__ENVIRONMENT=Production  ;环境变量
user = root  ;执行进程的用户
stopsignal = INT  
autostart = true  ;是否自动启动
autorestart = true  ;是否自动重启
startsecs = 1  ;自动重启间隔
stderr_logfile = /var/log/helloworld.err.log  ;标准错误日志
stdout_logfile = /var/log/helloworld.out.log  ;标准输出日志

实际项目:

supervisor部署:
cd /etc/supervisord.d/

vim product_new_merchant.ini

[program:product_new_merchant]
user = root
directory = /root/data_hub/all_script
command = /root/.virtualenvs/ProductNewMerchant/bin/python3.7 product_new_merchant.py
autostart = true
autorestart = true
startsecs = 1
environment = MYSQL_HOST="192.168.6.160",MYSQL_DATABASE="xxxxx",MYSQL_USER_NAME="xxxxxx",MYSQL_PASSWORD="xxxxx",MYSQL_PORT=3306,REDIS_HOST="192.168.95.55",LANG="en_US.utf8",LC_ALL="en_US.UTF-8",LC_LANG="en_US.UTF-8"
stdout_logfile = /var/log/product_new_merchant.log
redirect_stderr=true
stopsignal = INT

创建好配置文件后,重启 Supervisor

supervisorctl reload

或热重启,不会重启其他子进程

supervisorctl reread

supervisorctl update

为确保没有错误,可以正常启动,使用前文提到的查看Supervisor状态的命令查看。或者查看要管理的进程是否启动,本例中可以使用下面的命令:

ps -ef | grep HelloWorld.dll

或
ps -ef | grep dotnet

可能遇到的问题

1、我在网页上tail的时候,要不就是一直不返回,要不就是Error response
Error code 410.
Message: Gone.
2、stderr_logfile和stdout_logfile 颠倒
3、web界面中文乱码
参考:https://www.crifan.com/upgrad...

3.1.4老版本,升级最新版
[root@web-95-55 admin]# supervisord --version
3.1.4

备份yum版本supervisor配置文件,供参考:

yum remove supervisor
yum remove python-meld3
pip install supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
vim /etc/supervisor/supervisord.conf

修改应用配置文件路径:
;[include]
files = /etc/supervisor/config.d/*.ini

mkdir /etc/supervisor/config.d
cd /etc/supervisor/config.d
启动supervisor:
supervisord -c /etc/supervisor/supervisord.conf

附:公司运维小哥笔记

yum install supervisor -y
supervisor 配置说明
通过这种形式安装的supervisor,其配置文件的目录位于:
/etc/supervisord.conf (主配置文件,下面会详细介绍)
/etc/supervisor.d/ (默认子进程配置文件,也就是需要我们根据程序配置的地方)

[unix_http_server]
file=/home/supervisor/supervisor.sock   ; supervisorctl使用的 socket文件的路径
;chmod=0700                 ; 默认的socket文件权限0700
;chown=nobody:nogroup       ; socket文件的拥有者

[inet_http_server]         ; 提供web管理后台管理相关配置
port=0.0.0.0:9001          ; web管理后台运行的ip地址及端口,绑定外网需考虑安全性 
;username=root             ; web管理后台登录用户名密码
;password=root

[supervisord]
logfile=/var/log/supervisord.log ; 日志文件,默认在$CWD/supervisord.log
logfile_maxbytes=50MB        ; 日志限制大小,超过会生成新文件,0表示不限制
logfile_backups=10           ; 日志备份数量默认10,0表示不备份
loglevel=info                ; 日志级别
pidfile=/home/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid              ; pid文件
nodaemon=false               ; 是否在前台启动,默认后台启动false
minfds=1024                  ; 可以打开文件描述符最小值
minprocs=200                 ; 可以打开的进程最小值

[supervisorctl]
serverurl=unix:///home/supervisor/supervisor.sock ; 通过socket连接supervisord,路径与unix_http_server->file配置的一致

[include]
files = supervisor.d/*.conf ;指定了在当前目录supervisor.d文件夹下配置多个配置文件

定义supervisor管理进程配置文件

[program:sboot] ;[program:xxx] 这里的xxx是指的项目名字
directory = /opt/project  ;程序所在目录
command =  java -jar springboot-hello-sample.jar ;程序启动命令
autostart=true ;是否跟随supervisord的启动而启动
autorestart=true; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
stopasgroup=true;进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=true;向进程组发送kill信号,包括子进程
stdout_logfile=/var/log/sboot/supervisor.log;该程序日志输出文件,目录需要手动创建
stdout_logfile_maxbytes = 50MB;日志大小
stdout_logfile_backups  = 100;备份数


service supervisord restart

直接在命令行输入supervisorctl会展示当前已配置好的项目信息。
[root@wangzh supervisor.d]# supervisorctl 
sboot                            RUNNING   pid 27517, uptime 0:18:04
supervisor> 


然后可以执行
start/stop/restart sboot 来简单控制项目的启停等

supervisorctl update #更新配置文件
supervisorctl reload #重新启动配置的程序
supervisorctl stop all #停止全部管理进程

参考:

1、https://www.chengxulvtu.com/s...

2、https://blog.csdn.net/DongGeG...

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在Centos7使用superviso

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在Centos7使用superviso

置顶:推荐使用pip install supervisor安装最新版supervisor,yum install supervisor最高版本3.1.4,有很多bug名称解释supervisor:要安装的软件的名称。supervisord:
2023-01-31

centos7中firewall的使用-

给复杂防火墙规则配置“Rich Language" 语法通过 “rich language” 语法,可以用比直接接口方式更易理解的方法建立复杂防火墙规则。此外,还能永久保留设置。这种语言使用关键词值,是 iptables 工具的抽象表示。这
2023-01-31

Centos7下怎么使用Unison

本文小编为大家详细介绍“Centos7下怎么使用Unison”,内容详细,步骤清晰,细节处理妥当,希望这篇“Centos7下怎么使用Unison”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Unison是wind
2023-06-28

CentOS7中如何使用FirewallD

本篇内容主要讲解“CentOS7中如何使用FirewallD”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CentOS7中如何使用FirewallD”吧!centos 7中防火墙Firewall
2023-06-28

linux下使用 CentOS7安装jdk1.7

步骤一 卸载原有或自带jdk 有些linux系统会自带OPENJDK,我们最好先将原有自带的jdk删除掉再安装。 (1)用 java -version 命令查看当前jdk版本信息 java -version (2)用rpm -qa | gr
2022-06-04

CentOS7安装Kubernetes1.18.1并使用flannel

手工搭建 Kubernetes 集群是一件很繁琐的事情,为了简化这些操作,就产生了很多安装配置工具,如 Kubeadm ,Kubespray,RKE 等组件,我最终选择了官方的 Kubeadm 主要是不同的 Kubernetes 版本都有一
2023-01-31

CentOS7的hostnamectl命令怎么使用

这篇文章主要讲解了“CentOS7的hostnamectl命令怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS7的hostnamectl命令怎么使用”吧!用法# hostn
2023-06-28

Centos7怎么安装和使用TeamViewer

要在CentOS 7上安装和使用TeamViewer,请按照以下步骤操作:下载TeamViewer:打开浏览器,访问TeamViewer官方网站(https://www.teamviewer.com/zhcn/download/linux/
2023-10-26

无法在CentOS7中使用Tab键补全命令如何解决

本篇文章为大家展示了无法在CentOS7中使用Tab键补全命令如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1)首先需要在终端中运行如下命令:# yum install bash-compl
2023-06-07

Centos7中使用7zip压缩工具

7-Zip是一个支持7z(它实现了LZMA压缩算法,具有非常高的压缩比)、LZMA2、XZ、ZIP、Zip64、CAB、ARJ、GZIP、BZIP2、TAR、CPIO、RPM、ISO、大多数文件系统映像和DEB格式的文件归档器。RAR格式由
2023-06-05

CentOS7怎么使用yum安装Golang

本文小编为大家详细介绍“CentOS7怎么使用yum安装Golang”,内容详细,步骤清晰,细节处理妥当,希望这篇“CentOS7怎么使用yum安装Golang”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、g
2023-07-05

在CentOS7中使用Tab键无法补全命令如何解决

这篇文章给大家介绍在CentOS7中使用Tab键无法补全命令如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1)首先需要在终端中运行如下命令:# yum install bash-completion//也可以使
2023-06-10

CentOS7中hostnamectl命令如何使用

这期内容当中小编将会给大家带来有关CentOS7中hostnamectl命令如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。centos7 上在主机名变更新增了一个hostnamectl 指令 ,该
2023-06-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录