RabbitMQ rabbit_disk_monitor进程崩溃问题求助
RabbitMQ rabbit_disk_monitor进程崩溃原因分析
核心错误定位
崩溃日志中的{eacces, ...}是关键标识,这是操作系统权限访问被拒绝的错误(Erlang语言中eacces对应系统级的权限不足)。
触发流程拆解
从调用栈可以明确错误路径:
rabbit_disk_monitor进程执行get_disk_free方法时,通过Erlang的os:cmd调用Windows的cmd.exe,尝试获取c:/Users/appadmin/AppData/Roaming/RabbitMQ/db/rabbit@FR-PPA004-mnesia目录所在磁盘的可用空间。- 执行该系统命令时,RabbitMQ运行的用户账号没有足够权限,导致
open_port调用失败,最终引发进程崩溃。
可能的具体场景
- RabbitMQ服务运行的用户(如本地系统服务账号)无访问
c:/Users/appadmin/AppData/Roaming/RabbitMQ/db/目录的权限。 - Windows UAC(用户账户控制)限制,导致服务进程无法正常执行
cmd.exe相关命令获取磁盘信息。 - 目标磁盘或目录被设置了严格的权限规则,拒绝了RabbitMQ运行用户的访问。
内容的提问来源于stack exchange,提问作者YongJie
相关产品推荐
相关产品推荐

