首页 > 系统相关 >centos7 mosquitto (MQTT)安装/配置/自启动

centos7 mosquitto (MQTT)安装/配置/自启动

时间:2024-03-27 16:00:25浏览次数:18  
标签:py mqtt face centos7 etc MQTT mosquitto 自启动 python3


**************************************************************

windows:

>> 一、安装及配置 mosquitto

1.下载并安装 mosquitto (官网下载地址 https://mosquitto.org/download/)
>安装完成后进入安装目录
1).编辑 mosquitto.conf 文件. 注意系统防火墙得允许tcp 1883 端口
#设置不允许匿名登录
allow_anonymous false
#设置账户密码文件位置绝对路径为C:\developTool\mosquitto\pwfile.example(以我自己的安装路径为例)
password_file C:/developTool/mosquitto/pwfile.example
# 监听1883端口
listener 1883

2).打开命令行界面,配置账号密码
[可以不用 pwfile.example 这个文件名,会生成新的文件,需要重新配置 conf 文件]
mosquitto_passwd -c C:/developTool/mosquitto/pwfile.example mosquitto (使用-c 参数会导致清空密码文件,重新插入用户)
或者
mosquitto_passwd C:/developTool/mosquitto/pwfile.example mosquitto (不使用-c 表示追加用户,不影响旧用户)

2.打开系统服务,启动 mosquitto 服务

>> 二、启动 python

1.使用 pip 安装 paho-mqtt
2.进入当前 python 项目目录 /jy_face/
3.配置 mqtt_config.py
a.调整 BROKER 为目标 mosquitto 服务器的 ip 地址
b.调整对应的 USERNAME 及 PWD 为对应 mosquitto 服务器配置的账号密码
2.使用 python3 后台运行当前目录下 mqtt_sub.py
pythonw /***/mqtt_sub.py > /***/mqtt_sub.log


**************************************************************
**************************************************************

linux (centos7)
注意:所有文件路径都要确认正确!!!!!!

>> 一、安装及配置 mosquitto (参考 https://www.cnblogs.com/lenton/p/15166924.html)

1.安装 mosquitto
第 1 步:添加 EPEL 软件库 (这个软件库根据实际安装对应版本,centos7标准版已默认安装了latest-7版)
|-- 执行命令:yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|-- 查看结果:yum repolist all | grep enabled 已经添加了 EPEL 软件库,它显示有 13237 个软件包
第 2 步:安装 mosquitto
|-- 查找 mosquitto 软件包:yum list all | grep mosquitto
|-- 查看 mosquitto 信息: yum info mosquitto
|-- 安装 mosquitto 软件包: yum install mosquitto
|-- 查看安装结果:yum list installed | grep mosquitto

2.配置 mosquitto 账号密码。注意系统防火墙得允许tcp 1883 端口
[可以不用 pwfile.example 这个文件名,会生成新的文件,需要重新配置 conf 文件]
sudo mosquitto_passwd -c /etc/mosquitto/pwfile.example mosquitto (使用-c 参数会导致清空密码文件,重新插入用户)
或者
sudo mosquitto_passwd /etc/mosquitto/pwfile.example mosquitto (不使用-c 表示追加用户,不影响旧用户)
(我的处理方式是:sudo mosquitto_passwd -c /etc/mosquitto/passwd donlyn)
gjdtsc2bZdZs8X

/*3.配置 mosquitto. 编辑 /etc/mosquitto/mosquitto.conf 文件。注意系统防火墙得允许tcp 1883 端口
#设置不允许匿名登录
allow_anonymous false
#设置账户密码文件位置绝对路径为/etc/mosquitto/pwfile.example(以我自己的安装路径为例)
password_file /etc/mosquitto/pwfile.example (这个文件应该匹配步骤2的passwd文件路径)
# 监听1883端口*/
listener 1883

4.开启mosquitto服务
service mosquitto start
新版本
/bin/systemctl start mosquitto.service
这一步可能会遇到 Error: Invalid user 'mosquitto' 的情况,使用以下方式:
(参考:https://blog.csdn.net/yueni_zhao/article/details/130105434)
1).进入 mosqtuitto 目录: /etc/mosquitto/
命令行输入:
echo "user root" > user.conf 回车
cat user.conf 回车
2).编辑目录下新生成的 user.conf 文件
添加 password_file /etc/mosquitto/passwd (也就是上面步骤2的密码文件) 保存退出
user root
password_file /etc/mosquitto/passwd
3).启动 mosquitto 服务
mosquitto -c /etc/mosquitto/user.conf -d
4).查看mosquitto的进程
命令:ps -aux | grep mosquitto

>> 二、启动 python

1.使用 pip3 安装 paho-mqtt
pip3 install paho-mqtt (或直接执行 pip3 install -r /www/wwwroot/yourpython/requirements.txt【路径要正确,还要确认是否文件内有paho-mqtt】)
2.进入当前 python3 项目目录 /jy_face/
3.配置 mqtt_config.py
a.调整 BROKER 为目标 mosquitto 服务器的 ip 地址
b.调整对应的 USERNAME 及 PWD 为对应 mosquitto 服务器配置的账号密码
4.使用 python3 后台运行当前目录下 mqtt_sub.py
nohup python3 /home/www/wwwroot/yourpython/jy_face/mqtt_sub.py >> /home/www/wwwroot/yourpython/jy_face/mqtt_sub.log 2>&1 &

nohup python3 /www/wwwroot/yourpython/jy_face/mqtt_sub.py >> /www/wwwroot/yourpython/jy_face/mqtt_sub.log 2>&1 &

>> 查看当前全部进程
命令:ps aux --sort rss


**************************************************************
**************************************************************

>> linux(centos7) 系统重启时自动启动服务

1.(参考:https://blog.csdn.net/babytiger/article/details/106825363)

>打开 /etc/rc.d/rc.local 或 /etc/rc.local 文件,在末尾添加如下内容(注意要使用绝对路径):
nohup /usr/local/bin/python3 /home/www/wwwroot/yourpython/jy_face/mqtt_sub.py > /home/www/wwwroot/yourpython/jy_face/mqtt_sub_auto.log &
/usr/sbin/mosquitto -c /etc/mosquitto/user.conf -d

>保存并退出。
>在centos7上,编辑完 rc.local后,文件权限被降低了,执行以下命令:
chmod +x /etc/rc.local
>...该方式中 python3 部分可能会无效

2.生成 service 进入自启动 (可将当前目录下的 .service 拷贝过去进行修改)(与上面2选一)
>进入目录 /etc/systemd/system/
>创建 run_tj_hospital_mqtt.service 权限 644 或755
>写入内容:
[Unit]
Description=tj_hospital_mqtt
After=multi-user.target

[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/bin/python3 /home/www/wwwroot/yourpython/jy_face/mqtt_sub.py
WorkingDirectory=/home/www/wwwroot/yourpython/jy_face/
Restart=always

[Install]
WantedBy=multi-user.target
注意其中 ExecStart 中的路径要对应实际 python 路径及 py 文件路径
WorkingDirectory 对应 py 文件目录路径
>命令行输入 systemctl enable run_tj_hospital_mqtt.service 允许自启动
>命令行输入 systemctl start run_tj_hospital_mqtt.service 启动服务

 

**************************************************************
**************************************************************

>> 捷易人脸设备配置

1.登录设备后台:浏览器中输入设备ip地址,账号admin,默认密码123456
2.点击设备管理>设备信息,复制设备ID-SN
3.进入开发者设置
>HTTP/MQTT订阅
> +创建
>上报方式: MQTT
>上报地址: tcp://youusername:yourpwd@[mosquitto服务器ip地址(要去掉外面中括号‘[]’)]:1883
>MQTT topic: mqtt/face/[设备ID-SN(要去掉外面中括号‘[]’)]/report
>状态上报: 启用
>状态topic: mqtt/face/[设备ID-SN(要去掉外面中括号‘[]’)]/report-status
>远程通信RRPC
> +创建
>类型: MQTT
>服务器: tcp://youusername:yourpwd@[mosquitto服务器ip地址(要去掉外面中括号‘[]’)]:1883
>MQTT topic: mqtt/face/[设备ID-SN(要去掉外面中括号‘[]’)]/request/+
>状态上报: 启用(因为上面MQTT订阅已启用了 状态上报,所以这里可以不启用)
>状态topic: mqtt/face/[设备ID-SN(要去掉外面中括号‘[]’)]/status

tcp://donlyn:[email protected]:1883

**************************************************************
**************************************************************

面板启动计划任务:

任务名称:判断人脸打卡信息后台接收服务运行状态
执行周期:每半小时或每几分钟,用来判断上面两个服务是否正常启动
脚本内容:
python3 /home/www/wwwroot/yourpython/jy_face/process_remind.py

注意:有的服务器执行计划任务 python3 后报以下错误:
ModuleNotFoundError: No module named 'requests'

ModuleNotFoundError: No module named 'pymysql'
解决方案一:
使用 pip3.6 分别 install requests 及 pymysql
原因:不知道为什么系统内安装了两个python3,一个python3.6,一个python3.8
而pip3默认是python3.8的,但是计划任务的python3却是执行的python3.6的,很奇怪
解决方案二:(有空再研究,有项目使用python3.8; 而系统默认使用3.6, 随意卸载可能导致异常)
卸载python3.6, 统一使用 python3.8; 或者卸载3.8, 统一使用 python3.6

标签:py,mqtt,face,centos7,etc,MQTT,mosquitto,自启动,python3
From: https://www.cnblogs.com/donlyn/p/18068590

相关文章

  • Centos7 初步操作指南
    关键词:SELinux、防火墙、网络、创建用户、离线yum仓库1、关闭SELinux:SELinux:安全增强型Linux(Security-EnhancedLinux)简称SELinux,它是一个Linux内核模块,也是Linux的一个安全子系统。关闭原因:操作麻烦,会带来各种权限问题,高安全和便携取其一(大多数选择便携),阿里云......
  • Android 自启动过程学习
    Android系统启动流程Summary启动电源以及系统启动当设备通电时,引导芯片代码从预定义的地方开始执行。引导程序BootLoader到RAM,然后执行。引导程序BootLoader引导程序BootLoader时安卓操作系统开始运行前的一个小程序,主要是将系统的OS拉起来并运行。Linux内......
  • 【linux】Centos7 手动编译安装 cmake-3.28.4
    简介1、移除原来的cmake版本yumremovecmake-y2、下载cmake-3.28.4.tar.gz安装包并解压wgethttps://cmake.org/files/v31、移除老版本cmake版本并安装依赖包yumremovecmake-y;yuminstall-ygccgcc-c++makeautomakeopensslopenssl-devel2、下载cmake-3.7.2.tar.gz......
  • 服务器安装KVM环境并安装虚拟机(centOS7)
    一.安装KVM环境1.检测是否支持KVM        cat/proc/cpuinfo|egrep'vmx|svm'        返回结果中有vmx或svm,说明cpu是支持的2. 关闭SELinux,将/etc/sysconfig/selinux中的 SELinux=enforcing 修改为 SELinux=disabled        vi/etc/s......
  • Centos7安装mysql8.0
    一、卸载MariaDB#查看版本rpm–qa|grepmariadb#卸载rpm–e--nodeps文件名#查看是否卸载干净rpm–qa|grepmariadb 二、安装mysql1、下载资源包 官网下载https://dev.mysql.com/downloads/mysql/Wget下载1、下载​wgethttps://dev.mysql.com/get/D......
  • TTN MQTT数据订阅与发布
    一、MQTT客户端设置mqtt客户端使用mqtt.fx,也可以使用其他的客户端。打开后的主页面如下:地址和端口配置mqtt.fx的具体操作可以参考MQTT.fx使用详解二、订阅、发布订阅发布topic的格式需要参照MQTTClients需要注意的是下发数据的格式是BASE64。可以使用在线工具......
  • CentOS7.6离线安装Docker
    一、环境检查[root@localhostsoftware]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)[root@localhostsoftware]#uname-aLinuxlocalhost.localdomain3.10.0-957.el7.x86_64#1SMPThuNov823:39:32UTC2018x86_64x86_64x86_64GNU/Linux[root@......
  • centos7 activemq启动失败的解决过程
    时隔很久重新启动虚拟机中的centos7,准备启用activemq。运行命令如下:   $./activemqstartINFO:Loading'/home/****/apache-activemq-5.18.1//bin/env'INFO:Usingjava'/usr/bin/java'INFO:Starting-inspectlogfilesspecifiedinlogging.propertiesandlog4j.pro......
  • Linux 添加开机自启动
    rc.local方式一、&在Linux命令后加上 & 可以在后台运行 二、nohup对SIGHUP信号免疫,对SIGINT信号不免疫,可用shopt|grephup查看。当关闭终端时,shell默认会发送SIGHUP信号给与该终端关联的进程,从而导致其进程跟随终端退出。nohup捕获了SIGHUP,并做了忽略处......
  • MQTT.FX 连接AWS IoT Core 测试
    登录AWS->服务->物联网->IoTCore           登录IoTCore->所有设备物品->创建物品创建物品->下一步下载五个文件:2,3,4导导入MQTT.FX设置的SSL/TLS总对应的2,3,4位置.打开MQTT.FX设置连接成功,enjoy!!!!......