update
This commit is contained in:
parent
e7768fd180
commit
df2127e750
103
README.md
103
README.md
|
@ -1,10 +1,15 @@
|
||||||
# 1. 项目简介
|
# 1. 项目简介
|
||||||
|
|
||||||
# 2. 开发环境部署
|
# 2. 开发环境部署
|
||||||
|
|
||||||
## 软件要求
|
## 软件要求
|
||||||
|
|
||||||
#### 已经测试过的系统
|
#### 已经测试过的系统
|
||||||
|
|
||||||
- Debian GNU/Linux 12(bookworm) Linux version 5.16.17+
|
- Debian GNU/Linux 12(bookworm) Linux version 5.16.17+
|
||||||
|
|
||||||
## 环境安装
|
## 环境安装
|
||||||
|
|
||||||
```
|
```
|
||||||
# 首先,确信你的机器安装了python 3.11.2
|
# 首先,确信你的机器安装了python 3.11.2
|
||||||
$ python --version
|
$ python --version
|
||||||
|
@ -34,6 +39,7 @@ Thu Dec 14 15:13:45 CST 2023
|
||||||
# 更新py库
|
# 更新py库
|
||||||
$ pip3 install --upgrade pip
|
$ pip3 install --upgrade pip
|
||||||
```
|
```
|
||||||
|
|
||||||
## 配置wifi
|
## 配置wifi
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -46,14 +52,18 @@ enabled
|
||||||
# 连接wifi
|
# 连接wifi
|
||||||
$ sudo nmcli dev wifi connect <SSID> password <PASSWORD>
|
$ sudo nmcli dev wifi connect <SSID> password <PASSWORD>
|
||||||
```
|
```
|
||||||
|
|
||||||
## 配置系统静态IP
|
## 配置系统静态IP
|
||||||
|
|
||||||
### 使用nmtui网络界面管理
|
### 使用nmtui网络界面管理
|
||||||
|
|
||||||
`$ sudo nmtui`
|
`$ sudo nmtui`
|
||||||
|
|
||||||
- 设置的静态IP地址网段需要和摄像机在同一个网段
|
- 设置的静态IP地址网段需要和摄像机在同一个网段
|
||||||
- 无需设置网关,即为空。此项解决wifi上网和以太网上网冲突的问题。
|
- 无需设置网关,即为空。此项解决wifi上网和以太网上网冲突的问题。
|
||||||
- DNS设置为8.8.8.8
|
- DNS设置为8.8.8.8
|
||||||
- 勾选始终不使用此网络于默认路由
|
- 勾选始终不使用此网络于默认路由
|
||||||
|
|
||||||
## 配置git和pip
|
## 配置git和pip
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -68,6 +78,7 @@ $ cd lot_manager
|
||||||
# 安装项目依赖
|
# 安装项目依赖
|
||||||
$ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
$ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||||||
```
|
```
|
||||||
|
|
||||||
## 创建设备名称(系统唯一标识名称)
|
## 创建设备名称(系统唯一标识名称)
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -76,6 +87,7 @@ $ cd ~
|
||||||
$ echo 'lihai_lot_walnutpi_dev_1' | tee device_name
|
$ echo 'lihai_lot_walnutpi_dev_1' | tee device_name
|
||||||
lihai_lot_walnutpi_dev_1
|
lihai_lot_walnutpi_dev_1
|
||||||
```
|
```
|
||||||
|
|
||||||
## 创建mp4文件目录
|
## 创建mp4文件目录
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -102,7 +114,9 @@ $ sudo crontab -e
|
||||||
```
|
```
|
||||||
$ python /home/pi/lot_manager/create_db.py
|
$ python /home/pi/lot_manager/create_db.py
|
||||||
```
|
```
|
||||||
|
|
||||||
## 配置supervisor文件
|
## 配置supervisor文件
|
||||||
|
|
||||||
1. 安装完supervisor后,会在/etc/supervisor目录下存在supervisord.conf文件和conf.d目录。
|
1. 安装完supervisor后,会在/etc/supervisor目录下存在supervisord.conf文件和conf.d目录。
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -110,12 +124,14 @@ $ cd /etc/supervisor/
|
||||||
$ ls
|
$ ls
|
||||||
conf.d supervisord.conf supervisord.conf.bak
|
conf.d supervisord.conf supervisord.conf.bak
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 需要对supervisord.conf文件进行配置
|
2. 需要对supervisord.conf文件进行配置
|
||||||
|
|
||||||
```
|
```
|
||||||
$ sudo cp supervisord.conf supervisord.conf.bak
|
$ sudo cp supervisord.conf supervisord.conf.bak
|
||||||
$ sudo vim supervisord.conf
|
$ sudo vim supervisord.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 配置信息:
|
3. 配置信息:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -160,16 +176,17 @@ priority=1
|
||||||
[include]
|
[include]
|
||||||
files = /home/pi/lot_manager/conf/common/*.conf
|
files = /home/pi/lot_manager/conf/common/*.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
上面是已经修改好的配置文件,修改了其中几项:
|
上面是已经修改好的配置文件,修改了其中几项:
|
||||||
|
|
||||||
- [unix_http_server]
|
- [unix_http_server]
|
||||||
chmod改为0777,使得普通用户得以执行。
|
chmod改为0777,使得普通用户得以执行。
|
||||||
- [include]
|
- [include]
|
||||||
files = /etc/supervisor/conf.d/*.conf,files是用户定义的配置文件。
|
files = /etc/supervisor/conf.d/*.conf,files是用户定义的配置文件。
|
||||||
- [supervisorctl]
|
- [supervisorctl]
|
||||||
添加user=pi,使得普通用户得以执行。
|
添加user=pi,使得普通用户得以执行。
|
||||||
- [program:\_\_mqtt\_\_]
|
- [program:\_\_mqtt\_\_]
|
||||||
添加mqtt配置信息
|
添加mqtt配置信息
|
||||||
- 修改/etc/supervisor/conf.d的权限,sudo chmod 777 /etc/supervisor/conf.d
|
- 修改/etc/supervisor/conf.d的权限,sudo chmod 777 /etc/supervisor/conf.d
|
||||||
|
|
||||||
4. 设置开启启动supervisor
|
4. 设置开启启动supervisor
|
||||||
|
@ -177,14 +194,15 @@ files = /etc/supervisor/conf.d/*.conf,files是用户定义的配置文件。
|
||||||
```
|
```
|
||||||
$ sudo systemctl enable supervisor
|
$ sudo systemctl enable supervisor
|
||||||
```
|
```
|
||||||
|
|
||||||
5. 启动supervisor
|
5. 启动supervisor
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo systemctl start supervisor
|
sudo systemctl start supervisor
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
# 3. 项目结构
|
# 3. 项目结构
|
||||||
|
|
||||||
- lot_manager
|
- lot_manager
|
||||||
- bash
|
- bash
|
||||||
- cron_delete_mp4.sh 定时删除录像脚本
|
- cron_delete_mp4.sh 定时删除录像脚本
|
||||||
|
@ -230,19 +248,23 @@ sudo systemctl start supervisor
|
||||||
- git_update.sh 更新git脚本
|
- git_update.sh 更新git脚本
|
||||||
- install.sh 安装依赖脚本
|
- install.sh 安装依赖脚本
|
||||||
|
|
||||||
# 4.参数配置
|
# 4.supervisor参数配置
|
||||||
|
|
||||||
配置文件都在conf文件夹下。主要是common、main和device文件夹。
|
配置文件都在conf文件夹下。主要是common、main和device文件夹。
|
||||||
|
|
||||||
- conf
|
- conf
|
||||||
- common 表示supervisor管理的进程配置文件
|
- common 表示supervisor管理的进程配置文件
|
||||||
- device 设置不同device的配置,包括订阅主题、发布主题、用户名和密码等
|
- device 设置不同device的配置,包括订阅主题、发布主题、用户名和密码等
|
||||||
- main 公共配置,包括域名设置、录像上传地址等
|
- main 公共配置,包括域名设置、录像上传地址等
|
||||||
|
|
||||||
### MQTT的supervisor配置文件
|
### MQTT的supervisor配置文件
|
||||||
|
|
||||||
directory表示执行命令时,首先进入这个文件夹
|
directory表示执行命令时,首先进入这个文件夹
|
||||||
command表示要执行的命令
|
command表示要执行的命令
|
||||||
user必须是pi
|
user必须是pi
|
||||||
autostart表示随开机或supervisor重启时跟着启动
|
autostart表示随开机或supervisor重启时跟着启动
|
||||||
autorestart表示启动失败自动重启3次
|
autorestart表示启动失败自动重启3次
|
||||||
|
|
||||||
```
|
```
|
||||||
[program:__mqtt__]
|
[program:__mqtt__]
|
||||||
directory=/home/pi/lot_manager
|
directory=/home/pi/lot_manager
|
||||||
|
@ -256,6 +278,7 @@ stopasgroup=True
|
||||||
priority=1
|
priority=1
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 数据上传的supervisor配置文件
|
### 数据上传的supervisor配置文件
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -274,8 +297,11 @@ stopsignal=TERM
|
||||||
stopasgroup=True
|
stopasgroup=True
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 推流的supervisor配置文件
|
### 推流的supervisor配置文件
|
||||||
|
|
||||||
注意不要跟随开机或supervisor重启启动
|
注意不要跟随开机或supervisor重启启动
|
||||||
|
|
||||||
```
|
```
|
||||||
[program:push_stream]
|
[program:push_stream]
|
||||||
directory=/home/pi/lot_manager/bash
|
directory=/home/pi/lot_manager/bash
|
||||||
|
@ -287,7 +313,9 @@ redirect_stderr=true
|
||||||
stopsignal=TERM
|
stopsignal=TERM
|
||||||
stopasgroup=True
|
stopasgroup=True
|
||||||
```
|
```
|
||||||
|
|
||||||
### 录像的supervisor配置文件
|
### 录像的supervisor配置文件
|
||||||
|
|
||||||
```
|
```
|
||||||
[program:record]
|
[program:record]
|
||||||
directory=/home/pi/lot_manager/bash
|
directory=/home/pi/lot_manager/bash
|
||||||
|
@ -304,6 +332,7 @@ stopsignal=TERM
|
||||||
stopasgroup=True
|
stopasgroup=True
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 数据保存在本地的supervisor配置文件
|
### 数据保存在本地的supervisor配置文件
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -341,7 +370,6 @@ stopsignal=TERM
|
||||||
stopasgroup=True
|
stopasgroup=True
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## 不同设备的配置
|
## 不同设备的配置
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -400,6 +428,7 @@ publish_topic=camera_6
|
||||||
username=lihai_lot_land_1
|
username=lihai_lot_land_1
|
||||||
password=123456
|
password=123456
|
||||||
```
|
```
|
||||||
|
|
||||||
### 公共配置
|
### 公共配置
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -423,7 +452,9 @@ value=123456
|
||||||
device_name=`cat /home/pi/device_name`
|
device_name=`cat /home/pi/device_name`
|
||||||
/usr/bin/ffmpeg -rtsp_transport tcp -re -i rtsp://admin:123456@192.168.0.123:554/mpeg4 -c copy -preset fast -r 20 -flvflags no_duration_filesize -f rtsp -rtsp_transport tcp rtsp://47.108.186.87:554/live/$device_name
|
/usr/bin/ffmpeg -rtsp_transport tcp -re -i rtsp://admin:123456@192.168.0.123:554/mpeg4 -c copy -preset fast -r 20 -flvflags no_duration_filesize -f rtsp -rtsp_transport tcp rtsp://47.108.186.87:554/live/$device_name
|
||||||
```
|
```
|
||||||
|
|
||||||
对于ffmpeg的参数设置如下:
|
对于ffmpeg的参数设置如下:
|
||||||
|
|
||||||
- -rtsp_transport_tcp tcp 表示以tcp进行获取流,保证数据完整性
|
- -rtsp_transport_tcp tcp 表示以tcp进行获取流,保证数据完整性
|
||||||
- -re 表示推流设置
|
- -re 表示推流设置
|
||||||
- -i 表示输入流,这里是摄像机地址
|
- -i 表示输入流,这里是摄像机地址
|
||||||
|
@ -435,6 +466,7 @@ device_name=`cat /home/pi/device_name`
|
||||||
- rtsp://47.108.186.87:554/live/$device_name表示推流地址
|
- rtsp://47.108.186.87:554/live/$device_name表示推流地址
|
||||||
|
|
||||||
# 6.录像保存设置
|
# 6.录像保存设置
|
||||||
|
|
||||||
录像的脚本为record.sh,内容如下:
|
录像的脚本为record.sh,内容如下:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -450,7 +482,9 @@ OUTPUT_FILE="${OUTPUT_DIR}/${CURRENT_TIME}.mp4"
|
||||||
# 开始录制RTSP流
|
# 开始录制RTSP流
|
||||||
/usr/bin/ffmpeg -rtsp_transport tcp -i "${RTSP_URL}" -c copy -c:a aac -s 1920x1080 -r 15 -crf 35 -t "${RECORD_DURATION}" -f mp4 "${OUTPUT_FILE}"
|
/usr/bin/ffmpeg -rtsp_transport tcp -i "${RTSP_URL}" -c copy -c:a aac -s 1920x1080 -r 15 -crf 35 -t "${RECORD_DURATION}" -f mp4 "${OUTPUT_FILE}"
|
||||||
```
|
```
|
||||||
|
|
||||||
参数设置如下:
|
参数设置如下:
|
||||||
|
|
||||||
- -rtsp_transport_tcp tcp 表示以tcp进行获取流,保证数据完整性
|
- -rtsp_transport_tcp tcp 表示以tcp进行获取流,保证数据完整性
|
||||||
- -i 表示输入流,这里是摄像机地址
|
- -i 表示输入流,这里是摄像机地址
|
||||||
- -c 表示直接复制源流对象,不进行编码
|
- -c 表示直接复制源流对象,不进行编码
|
||||||
|
@ -462,6 +496,7 @@ OUTPUT_FILE="${OUTPUT_DIR}/${CURRENT_TIME}.mp4"
|
||||||
- -f mp4是保存为mp4文件
|
- -f mp4是保存为mp4文件
|
||||||
|
|
||||||
# MQTT程序控制配置,发布消息和订阅消息
|
# MQTT程序控制配置,发布消息和订阅消息
|
||||||
|
|
||||||
### 设备的编号配置信息
|
### 设备的编号配置信息
|
||||||
|
|
||||||
设备的配置为:
|
设备的配置为:
|
||||||
|
@ -475,20 +510,25 @@ publish_topic=camera_1
|
||||||
username=lihai_lot_land_1
|
username=lihai_lot_land_1
|
||||||
password=123456
|
password=123456
|
||||||
```
|
```
|
||||||
|
|
||||||
其中,
|
其中,
|
||||||
|
|
||||||
- subscribe_topic 表示订阅的主题,只有订阅后才能进行控制
|
- subscribe_topic 表示订阅的主题,只有订阅后才能进行控制
|
||||||
- publish_topic 表示数据发布的主题
|
- publish_topic 表示数据发布的主题
|
||||||
- username 表示客户端进行连接的用户名
|
- username 表示客户端进行连接的用户名
|
||||||
- password 表示客户端进行连接的密码
|
- password 表示客户端进行连接的密码
|
||||||
|
|
||||||
### 控制设备(推流、数据上传、录像等)
|
### 控制设备(推流、数据上传、录像等)
|
||||||
|
|
||||||
1. 发布的主题
|
1. 发布的主题
|
||||||
|
|
||||||
```
|
```
|
||||||
lihai_lot_walnutpi_dev_1
|
lihai_lot_walnutpi_dev_1
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 发送的消息体payload
|
2. 发送的消息体payload
|
||||||
example:
|
example:
|
||||||
|
|
||||||
```
|
```
|
||||||
{
|
{
|
||||||
"msg":"exec",
|
"msg":"exec",
|
||||||
|
@ -496,8 +536,11 @@ example:
|
||||||
"pwd":"123456"
|
"pwd":"123456"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### msg类型
|
### msg类型
|
||||||
|
|
||||||
msg表示消息类型,包括:
|
msg表示消息类型,包括:
|
||||||
|
|
||||||
- push_stream 设备启动推流
|
- push_stream 设备启动推流
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -551,6 +594,7 @@ msg表示消息类型,包括:
|
||||||
```
|
```
|
||||||
|
|
||||||
- reload 重启supervisor
|
- reload 重启supervisor
|
||||||
|
|
||||||
```
|
```
|
||||||
发布主题:lihai_lot_walnutpi_dev_1
|
发布主题:lihai_lot_walnutpi_dev_1
|
||||||
订阅:success,error
|
订阅:success,error
|
||||||
|
@ -559,7 +603,9 @@ msg表示消息类型,包括:
|
||||||
"pwd":"123456"
|
"pwd":"123456"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
- update 更新git
|
- update 更新git
|
||||||
|
|
||||||
```
|
```
|
||||||
发布主题:lihai_lot_walnutpi_dev_1
|
发布主题:lihai_lot_walnutpi_dev_1
|
||||||
订阅:success,error
|
订阅:success,error
|
||||||
|
@ -568,7 +614,9 @@ msg表示消息类型,包括:
|
||||||
"pwd":"123456"
|
"pwd":"123456"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
- exec 执行linux命令
|
- exec 执行linux命令
|
||||||
|
|
||||||
```
|
```
|
||||||
发布主题:lihai_lot_walnutpi_dev_1
|
发布主题:lihai_lot_walnutpi_dev_1
|
||||||
订阅:success,error
|
订阅:success,error
|
||||||
|
@ -578,11 +626,48 @@ msg表示消息类型,包括:
|
||||||
"pwd":"123456"
|
"pwd":"123456"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### data
|
### data
|
||||||
|
|
||||||
- data在执行linux命令和获取录像时必须设置。
|
- data在执行linux命令和获取录像时必须设置。
|
||||||
- 在执行命令时,data则是需要执行的命令,获取录像时,需要指定需要的录像名称
|
- 在执行命令时,data则是需要执行的命令,获取录像时,需要指定需要的录像名称
|
||||||
- 订阅success和error主题,可以查看错误消息和命令执行结果
|
- 订阅success和error主题,可以查看错误消息和命令执行结果
|
||||||
|
|
||||||
|
# 本地数据库字段设置
|
||||||
|
|
||||||
|
```
|
||||||
|
class LOT_DATA(BaseModel):
|
||||||
|
create_time: int = Field(None, description='创建时间(时间戳) ')
|
||||||
|
wind_speed: float = Field(None, description='风速:(0到30)m/s ')
|
||||||
|
wind_direction: float = Field(None, description='风向:0~360°')
|
||||||
|
ambient_temperature: float = Field(None, description='环境温度:℃')
|
||||||
|
ambient_humidity: float = Field(None, description='环境湿度:%RH')
|
||||||
|
carbon_dioxide: float = Field(None, description='二氧化碳:0~5000ppm')
|
||||||
|
ambient_air_pressure: float = Field(None, description='环境气压:0~120KPa')
|
||||||
|
rainfall: float = Field(None, description='雨量:mm')
|
||||||
|
ambient_lighting: float = Field(None, description='环境光照:0-65535Lux;0-20万Lux')
|
||||||
|
soil_temperature: float = Field(None, description='土壤温度:-40~80℃')
|
||||||
|
soil_moisture: float = Field(None, description='土壤湿度:0-100%RH')
|
||||||
|
soil_conductivity: float = Field(None, description='土壤电导率:0-20000μS/cm')
|
||||||
|
soil_PH: float = Field(None, description='土壤PH:3~9PH')
|
||||||
|
soil_potassium_phosphate_nitrogen: float = Field(None, description='土壤磷酸钾:氮的标准值在140-225mg/kg')
|
||||||
|
soil_potassium_phosphate_phosphorus: float = Field(None, description='土壤磷酸钾:磷的标准值在57-100mg/kg,')
|
||||||
|
soil_potassium_phosphate_potassium: float = Field(None, description='土壤磷酸钾:钾的标准值在106-150mg/kg')
|
||||||
|
```
|
||||||
|
|
||||||
|
### 本地数据库存放位置
|
||||||
|
|
||||||
|
```
|
||||||
|
# 存放的路径
|
||||||
|
KB_ROOT_PATH = "/home/pi/"
|
||||||
|
# 数据库名称
|
||||||
|
DB_ROOT_PATH = os.path.join(KB_ROOT_PATH, "lot_data.db")
|
||||||
|
# 连接URI
|
||||||
|
SQLALCHEMY_DATABASE_URI = f"sqlite:///{DB_ROOT_PATH}"
|
||||||
|
```
|
||||||
|
|
||||||
# 技术路线图
|
# 技术路线图
|
||||||
- [ x ] 数据上传
|
|
||||||
|
- [x] 数据上传
|
||||||
|
- [x] 摄像机推流
|
||||||
- [ ] MQTT程序控制的返回结果,设置统一的返回状态码
|
- [ ] MQTT程序控制的返回结果,设置统一的返回状态码
|
13
install.sh
13
install.sh
|
@ -5,18 +5,25 @@ sudo apt install supervisor
|
||||||
sudo apt install ffmpeg -y
|
sudo apt install ffmpeg -y
|
||||||
sudo timedatectl set-timezone Asia/Shanghai
|
sudo timedatectl set-timezone Asia/Shanghai
|
||||||
|
|
||||||
|
sudo apt install git
|
||||||
git config --global user.name xyj
|
git config --global user.name xyj
|
||||||
git config --global user.email 1090822794@qq.com
|
git config --global user.email 1090822794@qq.com
|
||||||
git config --global credential.helper store
|
git config --global credential.helper store
|
||||||
|
|
||||||
|
cd /home/pi
|
||||||
git clone https://gitea.lihaink.cn/xyj/lot_manager.git
|
git clone https://gitea.lihaink.cn/xyj/lot_manager.git
|
||||||
cd lot_manager
|
cd lot_manager
|
||||||
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||||||
|
|
||||||
python /home/pi/lot_manager/create_db.py
|
sudo cp /etc/supervisor/supervisord.conf /etc/supervisor/supervisord.conf.bak
|
||||||
mkdir /home/pi/mp4
|
|
||||||
|
|
||||||
sudo cp conf/example/supervisord.conf /etc/supervisor/supervisord.conf
|
sudo cp conf/example/supervisord.conf /etc/supervisor/supervisord.conf
|
||||||
sudo chmod 777 /etc/supervisor/conf.d
|
sudo chmod 777 /etc/supervisor/conf.d
|
||||||
|
|
||||||
|
python /home/pi/lot_manager/create_db.py
|
||||||
|
mkdir /home/pi/mp4
|
||||||
|
cd /home/pi
|
||||||
|
echo 'lihai_lot_walnutpi_dev_1' | tee device_name
|
||||||
sudo systemctl enable supervisor
|
sudo systemctl enable supervisor
|
||||||
sudo systemctl start supervisor
|
sudo systemctl start supervisor
|
||||||
|
sleep 60
|
||||||
|
supervisorctl reload
|
Loading…
Reference in New Issue