以下的 shell 命令,都是在 emqx 的安装目录下进行的,因此需要先执行:
cd <emqx安装目录>
一、启停管理
启动 EMQ X Broker
sudo bin/emqx start
停止 EMQ X Broker
sudo bin/emqx stop
2.1 启动失败
参考自 4.1.x 版本常见错误
我遇到了 EMQ X Broker v4.1.1 failed to start within 15 seconds
错误,执行 ./bin/emqx console
输出的错误内容包含:
{application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,crypto}}}, ..}
原因是 4.1.x 需要 OPENSSL 大于 1.0.2
2.1.1 查看已安装的openssl包
rpm –qa | grep openssl
2.1.2 卸载已安装的openssl包
sudo rpm -e --justdb --nodeps <yourpackage>
2.1.3 openssl_lib安装
前两步已经清理好了老的openssl_lib,现在可以安装新版本了:
sudo rpm -ivh openssl-libs-1.0.2k-19.el7.x86_64.rpm
2.2 修改node.name之后重启
停止 emqx 后,修改 etc/emqx.conf
文件中的 node.name
的值之后,重启前需要做一些清理工作
如果是用命令 sudo bin/emqx start
启动的,那么将存在 data/root_erl_pipes
目录
同理,如果你用 bin/emqx start
启动emqx,那么将存在 data/<当前用户的用户名>_erl_pipes
目录
我们需要在重启前清除这些目录
2.2.1 删除
删除 data/root_erl_pipes
目录
rm -rf data/root_erl_pipes/
删除所有 xxx_erl_pipes 之后,你就可以重启了~
二、插件管理
查看所有插件:
bin/emqx_ctl plugins list
查看特定插件,如 emqx_dashboard
bin/emqx_ctl plugins list | grep emqx_dashboard
结果如下:
Plugin(emqx_dashboard, description=EMQ X Web Dashboard, active=false)
- active=false 表示状态不活跃(未启动)
重启插件
bin/emqx_ctl plugins reload emqx_dashboard
三、设置crontab自动重启
3.1 新建/更新/删除定时任务
crontab –e
3.2 crontab表达式
Linux crontab 在线工具 https://tool.lu/crontab/
例如:
*/5 * * * * /bin/bash /home/geekziyu/emqx_monitor.sh
/home/geekziyu/emqx_monitor.sh
脚本内容如下:
#!/bin/bash
time=$(date "+%Y-%m-%d %H:%M:%S")
if [ `ps -ef | grep emqx | grep -v grep | wc -l` -ge 4 ];then
echo $time runing >> /home/geekziyu/emqx_reboot_log
else
cd /home/geekziyu/emqx_deploy_411/emqx/bin
sudo ./emqx start
echo $time reboot >> /home/geekziyu/emqx_reboot_log
fi
3.3 查看定时任务
crontab –l