You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

RabbitMQ命令执行异常:执行add_user命令返回badarg错误求助

解决RabbitMQ执行rabbitmqctl add_user时的badarg错误

这个错误本质是RabbitMQ的内部进程无法找到有效的终端输出关联(报错里的group_leader,[undefined,...]就是关键线索),之前能正常执行说明是环境或进程状态变化导致的,给你几个针对性的解决办法:

  • 先确保终端环境正常:不要在已经断开的SSH会话、非交互式脚本(比如crontab里未配置输出的任务)里执行这个命令,切换到正常的交互式终端再试。
  • 显式指定RabbitMQ节点执行:有时候节点名称的解析出问题也会触发这个错误,试试指定默认节点名执行:
    sudo rabbitmqctl -n rabbit@localhost add_user james mypassword
    
    如果你的RabbitMQ节点名不是默认的rabbit@localhost,可以先通过rabbitmqctl status查看(如果status能正常运行的话),替换成实际节点名即可。
  • 重启RabbitMQ服务:进程长时间运行可能出现终端关联异常,重启能重置进程状态:
    sudo systemctl restart rabbitmq-server
    
    重启完成后再重新执行添加用户的命令。
  • 保留环境变量执行sudo命令:sudo默认会重置部分环境变量,可能丢失终端相关的变量,试试用-E参数保留当前环境:
    sudo -E rabbitmqctl add_user james mypassword
    

简单说下错误根源:RabbitMQ的日志模块在写入输出时,需要关联一个有效的终端进程(group leader),当这个关联变成undefined时,就会抛出badarg异常,以上方法都是围绕恢复这个关联或者规避环境问题来解决的。

内容的提问来源于stack exchange,提问作者Zorgan

火山引擎 最新活动