解决一个emqttd trace 无法打开的问题

emqttd这个东西做的真心不咋地,之前有emq_auth_mysql的plugin死活无法启动的问题,现在又碰到trace无法打开的问题。

查看emqttd服务器当前连接的所有client:

emqttd_ctl clients list

要打开其中一个的client的trace log:

emqttd_ctl trace client A0A3B87007B0 log/A0A3B87007B0.log

结果显示trace成功:

但是在log目录下(log目录和bin目录平级),根本就没有A0A3B87007B0.log这个文件的产生。囧!!

误打误撞,看到了emqttd的错误日志/var/log/emqttd/error.log

由于权限问题,A0A3B87007B0.log无法创建!(这就是我觉得emqttd不咋地的重要原因,明明trace文件没有创建成功,你还报说successfully!)。所以只能从权限的角度去解决。

查看emqttd的进程,发现emqttd的相关进程都是以emqtt作为有效用户运行的,尽管我是以root用户来启动emqttd服务的,但是不知由于何种原因,我始终没有找到方法来修改emqttd服务的有效用户。

所以只好换个思路,查看系统的所有用户:

cat /etc/passwd

用户emqtt对应目录为/var/lib/emqttd,将trace文件放在该目录下,如:

emqttd_ctl trace client A0A3B87007B0 /var/lib/emqttd/A0A3B87007B0.log

A0A3B87007B0.log文件创建成功。如果需要关闭,只要:

emqttd_ctl trace client A0A3B87007B0 off

 

总结:

Linux进程对资源访问涉及到Linux用户的权限管理,其中的概念有实际用户,有效用户,文件所有者等。可参考:

https://www.linuxidc.com/Linux/2018-10/154540.htm

对emqttd的操作可参考:

https://developer.emqx.io/docs/broker/v2/cn/commands.html

转载于:https://my.oschina.net/u/4042451/blog/3051573

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值