EMQ X Broker 4.3.11使用service启动失败

版本EMQ X Broker 4.3.11 系统Ubuntu20.4
使用./meqx start可以正常启动
开机自启包括service emqx start启动都是失败

错误信息
● emqx.service - emqxautostart
Loaded: loaded (/lib/systemd/system/emqx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2022-12-26 09:49:36 CST; 14s ago
Process: 575311 ExecStart=/data/EmqX/emqx/bin/emqx start (code=exited, status=1/FAILURE)

Dec 26 09:49:11 dell systemd[1]: Starting emqxautostart…
Dec 26 09:49:36 dell emqx[575311]: EMQ X Broker 4.3.11 failed to start within 15 seconds,
Dec 26 09:49:36 dell emqx[575311]: see the output of ‘/data/EmqX/emqx/bin/emqx console’ for more information.
Dec 26 09:49:36 dell emqx[575311]: If you want to wait longer, set the environment variable
Dec 26 09:49:36 dell emqx[575311]: WAIT_FOR_ERLANG to the number of seconds to wait.
Dec 26 09:49:36 dell systemd[1]: emqx.service: Control process exited, code=exited, status=1/FAILURE
Dec 26 09:49:36 dell systemd[1]: emqx.service: Failed with result ‘exit-code’.
Dec 26 09:49:36 dell systemd[1]: Failed to start emqxautostart.

这个WAIT_FOR_ERLANG 是在哪里配置的

使用console日志启动也能正常启动
log.to = “console”
Erlang/OTP 23 [erts-11.1.8] [emqx] [64-bit] [smp:20:20] [ds:20:20:8] [async-threads:4]

Starting emqx on node emqx@127.0.0.1
Start mqtt:tcp:internal listener on 127.0.0.1:11883 successfully.
Start mqtt:tcp:external listener on 0.0.0.0:1883 successfully.
Start mqtt:ws:external listener on 0.0.0.0:8083 successfully.
Start mqtt:ssl:external listener on 0.0.0.0:8883 successfully.
Start mqtt:wss:external listener on 0.0.0.0:8084 successfully.
Start http:management listener on 8081 successfully.
Start http:dashboard listener on 18083 successfully.
EMQ X Broker 4.3.11 is running now!
Eshell V11.1.8 (abort w

你可以在启动失败后看一下 log 目录下的 erlang.log 日志文件中的内容

跟console里的没有区别

你把 WAIT_FOR_ERLANG 这个环境变量改大一点看看?export WAIT_FOR_ERLANG=150; service emqx start

我就是找不到这个环境变量在哪里设置的

这样好像不行

执行一下 systemctl status emqx.servicejournalctl -xe 看看


没有变化,和以前一样

你参考下这篇文档来设置一下环境变量吧,看起来前面那个没生效。

systemd 设置环境变量


环境变量是修改成功了,但是还是起不来
修改为60秒后服务期间可以起来,但是到60秒之后就会出现和以前一样的错误,之后服务被关闭

image
启动失败时错误日志里打印了一个这个

eaddressinuse 是因为还有一个 emqx 进程还在运行。 你找找有没占用 6370 端口的程序杀掉它。

应该不会,每次服务器断电重启之后emqx都起不来