Ubuntu下,python3下离线安装Supervisor

2023-11-11

说明,由于我的是生产环境,没有外网,所以只能通过安装包来下载,有外网的比较简单,可以直接通过apt-get即可,或者pip、pip3这些直接命令安装即可。

一 安装步骤

1.1

先在windows桌面新建一个sss目录,用于存储安装包,方便统一将各个安装包移到生成环境。我是直接将下面三个工具setuptools、meld、supervisor先下载完到sss,在开始进行下面步骤的解压安装的。

1.2 安装setuptools工具。

注意:此工具不能太低版本,例如setuptools-40.1.0,这个版本只能是python2.4及以前才能用,否则在配置时会报错,我就遇到了这个问题,后面换setuptools-60.2.0高版本才解决了。

官网如下:

https://pypi.org/project/setuptools/#files

直接下载并保存在windows的sss目录。
在这里插入图片描述

tar -xvf setuptools-60.2.0.tar.gz
cd setuptools-60.2.0
python3 setup.py install

安装成功如图:
在这里插入图片描述

1.3 安装meld3-1.0.2

wget https://pypi.python.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz#md5=3ccc78cd79cffd63a751ad7684c02c91

如果wget没反应,直接打开链接,然后就可以直接下载了。然后解压:

tar -zxvf meld3-1.0.2.tar.gz
cd meld3-1.0.2
sudo python setup.py install

#最后更新一下配置
ldconfig

注意sudo python setup.py install时可能会出现问题,原因是可能是你没有安装setuptools工具。

看到这里基本是安装meld3-1.0.2成功了。
在这里插入图片描述

1.3 安装supervisor-3.3.3

wget https://pypi.python.org/packages/31/7e/788fc6566211e77c395ea272058eb71299c65cc5e55b6214d479c6c2ec9a/supervisor-3.3.3.tar.gz#md5=0fe86dfec4e5c5d98324d24c4cf944bd

同理,如果wget没反应,直接打开链接,然后就可以直接下载了。然后解压:

tar -zxvf supervisor-3.3.3.tar.gz
cd supervisor-3.3.3
python setup.py install
#python3 setup.py install,python、python3两者好像并无区别,都可以试试

1.4 使用echo_supervisord_conf生成配置文件

#配置文件的目录可以自己指定的,我这里加多一层目录supervisor,大家也可以按照自己想要的目录层次
mkdir -p /etc/supervisor/
echo_supervisord_conf > /etc/supervisor/supervisord.conf

此时在/etc/supervisor/会生成一个配置文件。
在这里插入图片描述

注意:此步骤可能出现下列问题,意思是你的meld3-1.0.2没有安装或者版本低于0.6.5了,这是因为你安装setuptools失败,导致meld3-1.0.2没成功安装。解决方法是重新安装上面两个工具,确认安装成功。
在这里插入图片描述

1.5 开启supervisord服务并查看是否正常

supervisord -c /etc/supervisor/supervisord.conf
ps -fe | grep supervisord

成功如下:
在这里插入图片描述

在上面我们就安装好了Supervisor了。

二 添加进程到Supervisor测试

2.1 修改/etc/supervisor/supervisord.conf配置文件

最好在修改配置前先 kill 停掉原来的supervisor服务。

在上面我们生成了配置文件,下面为了方便统一管理配置,我们需要对其修改。
找到[include]下的files,将[include]前面的;与files前面的;都要去掉,否则会被注释掉的。然后修改成下图箭头的内容。

vim /etc/supervisor/supervisord.conf

在这里插入图片描述

然后supervisor默认会在/tmp生成pidfile、socket文件等内容,系统可能会定期删除/tmp的内容,所以为了避免系统的影响,我们将这些路径修改一下:
在这里插入图片描述
在这里插入图片描述

修改上面后,可以更新一下。

#如果关掉了supervisord 需要重启启动一下
#supervisord -c /etc/supervisor/supervisord.conf

supervisorctl update

如果报错的话:
在这里插入图片描述

#最好在修改配置前先停掉原来的supervisor服务,否则会开启多个supervisor,不过可以使用kill -9 进程 去停止。

#使用以下命令重启一下即可:
/usr/bin/python /usr/local/bin/supervisord -c /etc/supervisor/supervisord.conf
#supervisord可能并非在/usr/local/bin/,也可能是在/usr/bin/,看你自己的安装位置。

#上面修改配置后,这个目录是没有的,所以最好创建一下。
mkdir -p /var/log/supervisor/

#此时再update应该没问题,如果再报一下日志文件不存在的错误,手动创建一下即可。
supervisorctl update

2.2. 添加自己项目的配置文件

因为上面我们是没有/etc/supervisor/conf.d这个目录的,所以需要创建。

mkdir -p /etc/supervisor/conf.d
vim /etc/supervisor/conf.d/自己的项目名.conf

然后添加下面的内容:
标注了数字的5处地方是必须要改成自己的项目名称和路径的,并且如果日志文件路径不存在的,需要自己先创建,否则下面开启服务时会报错。

# 1
[program:ptz-rtsp_url-hk]
# 2 程序在该路径下运行
directory=/home/runone/RoadGatewayServer/PTZ-RTSP_URL-HK/bin/
#运行用户root
user = root
# 3 运行
command=/home/runone/RoadGatewayServer/PTZ-RTSP_URL-HK/bin/ptz-rtsp_url-hk
#在supervisord 启动的时候也自动启动
autostart = true
#启动 1 秒后没有异常退出,就当作已经正常启动了
startsecs = 0
# 停止等待时间
stopwaitsecs=10
#程序异常退出后自动重启
autorestart = true
#启动失败自动重试次数,默认是 3
startretries = 100
# 4 日志文件若文件夹不存在需新建
stdout_logfile=/var/ptz-rtsp_url-hk_log/ptz-rtsp_url-hk.log
# 5 错误日志
stderr_logfile=/var/ptz-rtsp_url-hk_log/ptz-rtsp_url-hk_error.log
#设置环境变量
environment=LOG_DIR="/var/ptz-rtsp_url-hk_log"

最后更新一下supervisor即可。

supervisorctl update

2.3 开启自己的进程服务

supervisorctl start ptz-rtsp_url-hk
supervisorctl status

实际上在start前的update就已经自动帮你开启程序了,所以start再就会报错说已经开启。我们看状态确实已经开启程序了。
在这里插入图片描述

在这里,已经成功在局域网的状态下,安装好了Supervisor。

2.4 查看程序日志的打印信息

supervisorctl tail -f ptz-rtsp_url-hk

通过上面命令,你可以看到你自己日志文件的打印信息。

三 设置开机启动supervisor服务

#添加以下文件,ubuntu是/lib/systemd/system/路径,centos是/usr/lib/systemd/system/
vim /lib/systemd/system/supervisord.service

添加内容:

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target

[Service]
Type=forking
;PIDFile=/tmp/supervisord.pid
;需要与supervisord.cond里面的pid路径一样
pidfile=/var/run/supervisord.pid 
;执行路径与其配置文件路径,这两者的路径都需要正确配置
ExecStart=/usr/local/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl shutdown
ExecReload=/usr/local/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
#先关闭supervisord服务
killall supervisord
或者
ps -ef | grep supervisord
kill -9 进程号

#更新服务配置。
sudo systemctl daemon-reload
#启动开机启动
systemctl enable supervisord
#开启supervisord服务
systemctl start supervisord
#查看服务状态
systemctl status supervisord

至此成功在离线状态下安装Supervisor。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu下,python3下离线安装Supervisor 的相关文章

  • apt-get 无法在 ubuntu dockerfile 中工作

    我对 docker 相当陌生 正在尝试通过编写自己的镜像来学习 并且目前正在阅读 Docker 的实际操作 ISBN 1633430235 在我自己的代码和书中的示例 第 146 页 中 我想通过 dockerfile 安装 git My
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 如何在ubuntu的conda环境中更改Rstudio中的R版本

    我在基本系统中安装了 R 4 3 和 Rstudio 在 conda 环境中安装了旧版本的 R 4 2 3 命令which R返回环境中安装的 R 的目录 home 用户 miniconda3 envs anndata2ri pip bin
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 在 Ubuntu 中使用 Gstreamer 通过 RTP 协议流式传输 Mp4 视频

    我正在尝试从本地目录获取视频文件 启用来自服务器的流并从客户端捕获这些帧 我使用了以下管道 服务器端 gst launch v filesrc location home gokul Videos Econ TestVideo radioa
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 让 Rails 生产在端口 80 上运行

    我正在尝试让我的 Rails 应用程序在生产模式下运行 但遇到了一些困难 我正在使用 Passenger 和 apache 并运行 Ubuntu 12 04 我已经配置和创建了生产数据库 并设置了乘客 状态如下 rvmsudo passen
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • ubuntu 16.04.1 LTS 启动 Android 模拟器时崩溃

    我已经尝试过 Android studio 上的 AVD 和 Genymotion 模拟器 我的 ubuntu 16 04 1 在启动 android 模拟器时崩溃 冻结 我的电脑内存是16G 在我于 2016 年 9 月 19 日安装了
  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包
  • 为什么我可以直接从 bash 执行 JAR?

    我是一个长期从事 Java 工作的人 并且知道运行带有主类的 JAR 的方法MANIFEST MFJar 中的文件很简单 java jar theJar jar 我用它来启动 Fabric3 服务器 包含在bin server jar在其标
  • docker容器大小远大于实际大小

    我正在尝试从中构建图像debian latest 构建后 报告的图像虚拟大小来自docker images命令为 1 917 GB 我登录查看尺寸 du sh 大小为 573 MB 我很确定这么大的尺寸通常是不可能的 这里发生了什么 如何获
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是

随机推荐

  • Android 中自定义ViewGroup实现流式布局的效果

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 自定义View与自定义ViewGroup的区别 自定义View 在没有现成的View 需要自己实现的时候 就使用自定义View 一
  • cin,cout和scanf,printf速度差距

    这道题的数据量大概在1e5左右 第1 2行为C C 输入输出加速后cin cout的耗费时间 第3行为不加速的 cin cout的时间 第4行为scanf printf的时间
  • 【51单片机实验笔记】声学篇(一) 蜂鸣器基本控制

    目录 前言 硬件介绍 PWM基础 蜂鸣器简介 原理图分析 蜂鸣器驱动电路 软件实现 蜂鸣器短鸣 蜂鸣器功能封装 总结 前言 蜂鸣器在生活中的应用实则相当广泛 通过本章你将学会制造噪声 笑 你将学会驱动它们 并发出响声 硬件介绍 PWM基础
  • 常用植被物候提取方法 (TIMESATE/R语言/Python)

    文章内容仅用于自己知识学习和分享 如有侵权 还请联系并删除 一 Background 这篇文章介绍的非常全面 物候的提取通常包含两个步骤 1 曲线的重构拟合 curve fitting 和 2 物候矩阵的提取 phenological me
  • linux系统运维工程师面试题集锦(一)

    1 常见Linux的发行版有哪些 并描述不同发行版之间的联系与区别 Fedora 是基于RHEL CentOS Scientific Linux 和Oracle Linux的社区版本 相比RHEL Fedora打包了显著的更多的软件包 SU
  • Vue使用debugger

    vue开发时会遇到需要调试代码的情况 使用debugger可以很方便的进行debug 1 build webpack dev conf js 将devtool cheap module eval source map 改为devtool e
  • datasource无法加载问题

    解决办法 将静态资源导入去掉 这里我是确保代码 jar包与yaml正确的情况下发现的 将pom文件中自己写的静态资源导入删掉
  • android 多线程异步下载文件,造轮子之 Android 多线程多任务断点续传下载器(设计篇)...

    前段时间面试 被问到 app 的自动更新是怎么做的 文件下载怎么实现的 用了多线程吗 是否支持断点续传 一下蒙逼 因为直接用第三方框架实现的文件下载 这些问题完全没想过 回来后觉得这里面其实涉及很多知识点 就打算自己动手封装一个支持多线程多
  • NLP(四十一)使用HuggingFace翻译模型的一次尝试

    本文将如何如何使用HuggingFace中的翻译模型 HuggingFace是NLP领域中响当当的团体 它在预训练模型方面作出了很多接触的工作 并开源了许多预训练模型和已经针对具体某个NLP人物训练好的直接可以使用的模型 本文将使用Hugg
  • Windows安装Maven教程

    一 Maven介绍 Maven是一种流行的构建工具 用于管理Java项目的构建过程 依赖项和项目生命周期 它提供了一种简单而灵活的方式来构建 测试和部署Java应用程序 Maven使用一个XML配置文件来定义项目的结构和构建过程 通过这个配
  • data analysis --python on Jupyter

    data cleaning data analysis 第一步 1 detect and delete wrong data 1 find the wrong data and make sure the data indeed wrong
  • 世界上最完美的公式 ----欧拉公式

    欧拉公式 在数学历史上有很多公式都是欧拉 leonhard euler 公元1707 1783年 发现的 它们都叫做 欧拉公式 它们分散在各个数学分支之中 1 分式里的欧拉公式 a r a b a c b r b c b a c r c a
  • 华为机试题输入输出总结

    华为机试题采用的是ACM模式 需要考生自行编写输入和输出 对于已经习惯了只编写函数体部分的考生来说可能会是个挑战 本人尝试根据自己在刷华为机试题过程中遇到的各种输入输出的case进行梳理 希望能够帮助大家尽快适应华为机试题的输入输出模式 减
  • LuatOS-SOC接口文档(air780E)--dac - 数模转换

    dac open ch freq mode 打开DAC通道 并配置参数 参数 传入值类型 解释 int 通道编号 例如0 int 输出频率 单位hz int 模式 默认为0 预留 返回值 返回值类型 解释 true 成功返回true 否则返
  • C++ traits编程方法

    转自 http s99f blog 163 com blog static 35118365200903111941380 侯捷老师在 STL 源码剖析 说 traits编程方法是一把开启STL源代码大门的钥匙 其重要性也就不必再说了 既然
  • Eclipse如何给main方法传值

    import java util Arrays 这是一个测试类 用来研究main方法的传值问题 author HHB public class Test 这是类的主方法 可以用来接受用户的输入 并将输入数据保存到一个String类型的数组里
  • gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)

    文章目录 postgresql13 0安装 1 配置postgresql数据库 2 进入postgresql创建数据库 代码质量管理平台 sonarqube安装 1 前置依赖 下载 2 安装unzip并解压sonarqube并移动到 usr
  • 基础数据类型的取值范围计算方法

    一 以c 为例 1 int 整数类型 4个字节 1KB 1000B 1B就是一个字节 一个字节占8位 所以4个字节就是4 8 32位 因为在计算机的二进制中有一个符号位 32 1 31 剩下31个位置存放数字 计算 每个位置只能是0 1这两
  • C++ 泛型编程(二) 函数模版

    前文回顾 C 泛型编程 一 基本概念 函数模版 模版定义 定义 模版定义以关键字 template 开始 后跟尖括号包围的模版参数列表 用关键字 typename 来定义模版参数类型 template
  • Ubuntu下,python3下离线安装Supervisor

    说明 由于我的是生产环境 没有外网 所以只能通过安装包来下载 有外网的比较简单 可以直接通过apt get即可 或者pip pip3这些直接命令安装即可 一 安装步骤 1 1 先在windows桌面新建一个sss目录 用于存储安装包 方便统