EMQX在Windows系统下的开机自启与异常自动重启脚本

介绍

此脚本每隔60秒监测一次EMQX的运行状态,若未正常运行则重新启动该程序,我们可以给该脚本命名为 emqx_monitor.bat

    注意:使用前需要 将 EMQX_PATH 变量的值配置为你自己的 emqx 目录。
@echo off
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
 
set EMQX_PATH=E:\emqx
set OUTPUT_FILE=%EMQX_PATH%\emqx_monitor.log
 
:loop
cd /d "%EMQX_PATH%"
 
REM 获取当前日期时间,并格式化为时间戳
for /f "tokens=1-4 delims=/ " %%a in ('date /t') do (
    set year=%%a
    set month=%%b
    set day=%%c
)
for /f "tokens=1-3 delims=: " %%a in ('time /t') do (
    set hour=0%%a
    set minute=%%b
)
set timestamp=%year%-%month%-%day% %hour:~-2%:%minute%
 
cd bin
emqx_ctl status | findstr /C:"Node 'emqx@127.0.0.1'" | findstr /C:"is started" >NUL
IF "%ERRORLEVEL%"=="0" (
    echo [%timestamp%] EMQX is running normally. >> %OUTPUT_FILE%
) ELSE (
    echo [%timestamp%] EMQX is not running. Restarting... >> %OUTPUT_FILE%
 
    REM 结束之前的 EMQX 进程,可以通过 taskkill 命令来实现
    REM taskkill /f /im beam.smp.exe >NUL
 
    start /b cmd /c "%EMQX_PATH%\bin\emqx start"
 
    echo [%timestamp%] EMQX has started. >> %OUTPUT_FILE%
 
)
 
timeout /t 60 > NUL
goto loop

运行与停止

双击该bat文件即可运行该批处理程序
运行后命令行黑窗口会一闪而过,同时emqx_monitor.log日志文件更新时间会一直刷新

在这里插入图片描述

停止批处理程序

在任务管理其详细信息中可以找到cmd.exe 和 和conhost.exe 两个程序。
点击结束程序即可。
注意:两个程序必须都停止,且要先结束cmd.exe 再结束conhost.exe 否则会一直报错

在这里插入图片描述

开机自启动

找到这个目录C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
在这里插入图片描述

运行结果

日志文件是位于emqx 文件目录下的 emqx.log。
14:37时我手动停止EMQX 模拟崩溃场景,脚本成功将EMQX启动。
在这里插入图片描述
访问页面:http://127.0.0.1:18083/
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小码农>>>>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值