1. 主程序main, 读取主程序所在目录下配置文件msg_config.ini
2. msg_config.ini文件中需配置:PROCESSES下的监听进程定义的文件路径
3. 程序主要逻辑如下:
a. 读取msg_config.ini
b. 读取kafka配置,并连接server和订阅TRANSFER下的消息
c. 读取PROCESSES指定的进程监测文件,并检测,每固定时间检测进程是否正常,非启动状态会进行启动
4. deploy commands: pyinstaller --onefile --noconsole main.py
msg_config内容示例如下:
[KAFKA]
server = 192.168.0.79:9092
topics = vp_ba_jam, vp_ba_stop, vp_ba_crossline, vp_tracking
public_topic = vp_ba_result
[OUTPUT]
file = kafka_messages.txt
[TRANSFER]
topic_1 = cameralist
channel_size = 12
actions = JAM,STOP,WRONG_WAY,CROWD_GATHERING,PERSON_FALLDOWN,FIRE
outfile = textjson/config.json
full_actions = JAM,STOP,WRONG_WAY,CROWD_GATHERING,PERSON_FALLDOWN,FIRE,JUNK_STACK,SMOCKING,BARRIER_GATE
[PROCESSES]
process_file = textjson/process_list.json
[SEND_MSG]
run_send = true
send_topics = cameralist
send_interval = 300
json_file = textjson/cameralist.json
process_list配置文件示例如下:
{
"process_list": [
{"program_path": "gnome-terminal", "commands": "top -d 1", "process_name": "top0"},
{"program_path": "gnome-terminal", "commands": "top -p 1234", "process_name": "top1"},
{"program_path": "gnome-terminal", "commands": "top -u wr", "process_name": "top2"},
{"program_path": "gnome-terminal", "commands": "top -H", "process_name": "top3"}
],
"interval_monitor_seconds": 10
}