`ejabberdctl start` 导致“内核 pid 终止”错误 - 我该怎么办?

2024-03-27

我用谷歌搜索了三个小时但没有结果。

我有一个 ejabberd 安装,但不是使用 apt 安装的。它是从源代码安装的,其中没有名为 ejabberd 的程序。启动和停止,一切都是通过 ejabberdctl 进行的。

它完美地运行了一个月,突然有一天它因臭名昭著的问题而停止了

kernel pid terminated error

任何时候我都会

sudo ejabberdctl start --node ejabberd@MasterService

生成 erl_crash 文件,当我尝试时

ejabberdctl

i get

Failed to connect to RPC at node ejabberd@MasterService

现在我尝试了什么

  1. 尝试终止 ejabberd、beam、epmd 的所有正在运行的进程并重新启动 - 不起作用
  2. 检查了 /etc/hosts 和主机名,一切正常。主机名与 IP 一起在主机文件中提供
  3. 检查 ejabberdctl.conf 文件以确保主机名确实正确并且节点名称正确
  4. 检查正在创建的 .erlang.cookie 文件及其内容

在所有网络中,搜索都以某种方式引导我找到上述任一方式。

我无处可去,也不知道还能去哪里寻找。任何帮助将非常感激。


您必须分析故障转储以尝试猜测它失败的原因。

为了执行这个任务,Erlang 有一个特殊的网络工具(叫做,呃,webtool),其中一个特殊的应用程序——崩溃转储查看器——可用于加载转储并检查崩溃时 Erlang 进程的堆栈跟踪。

你必须

  1. 安装必要的软件包:

    # apt-get install erlang-webtool erlang-observer
    
  2. 启动 Erlang 解释器:

    $ erl
    

    (在那里采取进一步的行动。)

  3. 运行网络工具。在最简单的情况下,它将监听本地主机:

    webtool:start().
    

    (注意句点。)它将打印回一个 URL,以便在浏览器中导航以访问正在运行的工具。

    如果这种情况发生在服务器上,并且您希望让 Webtool 侦听某个非本地主机接口,则调用咒语会更加棘手:

    webtool:start(standard_path, [{port, 8888}, {bind_address, {0, 0, 0, 0}}, {server_name, "server.example.com"}]).
    

    The {0, 0, 0, 0}IP 规范将使其在任何地方监听,您不妨指定一些更合理的八位位组,例如{192, 168, 0, 1}. The server_name子句可能使用任意名称——这就是将在生成的 URL 中打印的内容,即服务器的主机名。

  4. 现在使用浏览器连接到该工具,导航到“启动工具”菜单条目,启动故障转储查看器并将其链接显示在该工具的顶部菜单中。继续前进并找到加载故障转储的链接。

  5. 加载故障转储后,尝试使用该工具的界面来查看活动 Erlang 进程的堆栈跟踪。其中至少有一个应该包含一些可疑的内容,其中应该包含一条错误消息 - 这就是您要完善您的问题的内容(或者在ejabberd 邮件列表 http://lists.jabber.ru).

  6. 要退出该工具,请运行

    webtool:stop().
    

    在运行的 Erlang 解释器中。然后通过运行退出它

    q().
    

    稍等一下或按Ctrl-g然后输入字母q然后按回车键。

相关链接是:故障转储查看器手册 http://www.erlang.org/doc/apps/observer/crashdump_ug.html网络工具手册 http://www.erlang.org/doc/man/webtool.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

`ejabberdctl start` 导致“内核 pid 终止”错误 - 我该怎么办? 的相关文章

  • 如何返回元素的个数?

    我必须编写一个函数 它接受一个整数列表作为参数并返回列表中小于 1 的整数的数量 到目前为止 我所拥有的是一个仅返回列表中的整数个数的函数 我不确定应该在哪里 是否放置 if 语句和计数器以仅返回有多少个整数小于 1 export num
  • 什么是 ntdll.dll!RcConsolidateFrames?

    我的转储文件中有一个如下所示的调用堆栈 我想在调用堆栈中找到我的代码 但找不到 分析我的转储的起点是什么 我的程序的链接选项是release Od msvcr120 dll abort msvcr120 dll terminate msvc
  • 如何从数字列表中获取字符串?

    我有一个 Erlang 符号列表 104 105 106 107 如何从此列表中获取字符串 hijk Erlang 中不存在字符串这种数据类型 Stings 只是字符列表 104 105 106 107 and hijk 是完全等价的 事实
  • Erlang - 导入 GPG 公钥

    我正在尝试在 Erlang 中做一些与公钥相关的事情 它们要求我跟踪公钥 根据这一页 http www erlang org doc apps public key using public key html id61611 我应该能够通过
  • 有没有办法对默认记录值进行查找?

    给定一个记录 record something id integer name string email undefined string undefined 有没有办法获取字段的默认值 在本例中得到的事实是 something email
  • 终止连接到 erlang 端口的进程

    我想写一个某种主管 我正在尝试实现关闭外部程序的功能 外部进程通过端口连接到 erlang 的代码 我不知道如何通过发送信号或其他任何方式来关闭该程序 关闭端口不是解决方案 因为我已经检查过许多程序不会在 SIGPIPE 上退出 您有任何想
  • 零部署 CouchDB 嵌入 Windows 应用程序?

    我可能在这里做梦 但我想知道是否有可能将最小的 CouchDB 引擎完全嵌入到 Windows 应用程序中 以便该应用程序可以运行而无需在用户计算机上安装 CouchDB Erlang 我已经提供了这种精简 捆绑的功能 请在此处查看http
  • 检查 Erlang 中的活动计时器

    有没有一种简单的方法来获取所有当前等待的计时器的列表erlang send after erlang apply after等在Erlang中 出于调试目的 您可以使用dbg 首先创建一个 ets 表来存储所有计时器引用 1 gt ets
  • Erlang 更好地支持哪种数据库(SQL)?

    你建议我在 Erlang 中使用什么 MySQL 还是 Postgres 哪个数据库有更好 更成熟 更稳定 更快 的 Erlang 驱动程序 The Erlang ODBC 接口 http erlang org doc apps odbc
  • 停止 Erlang 守护进程

    除了跑步 killall 9 beam smp 当我知道 Erlang 节点的情况时 如何以编程方式杀死它 sname 如果我不希望心跳监视器重新启动该进程 如何确保上述问题的任何答案也会终止心跳 有没有一个不错的指南来将 Erlang 部
  • 使用自定义 mysql 模式的模块扩展 ejabberd?

    代替ejabberd sql https github com processone ejabberd blob master sql mysql sql L95 我正在使用自定义 MySQL 架构 由于遗留原因 我将对某些活动执行一些数据
  • Erlang 应该如何处理通用数据?

    假设我正在使用 Erlang 构建游戏服务器 每个用户检查某些内容 例如找到最近的玩家 是很常见的 因此通常有一个管理器类 在上面的例子中 我们使用互斥锁 据我所知 Erlang 通常会为每个 TCP 连接 用户会话 创建新的 Erlang
  • Erlang 中的非终止函数类型

    我正在学习 Erlang 并尝试使用 Dialyzer 在可能的情况下获得最大的类型安全性 有一点不太明白 什么是类型非终止的函数以及如何表示它 spec 有人能解释一下吗 永远循环且永不终止的函数具有返回类型no return 该返回类型
  • 为什么 epmd 进程不退出?

    在我退出 erlang shell 后 epmd 进程仍然存在 这是一个错误还是一个功能 这是很正常的 EPMD 是一个主机守护进程 当人们打算使用分布式节点时 就需要它的存在 当仅在同一台机器上使用多个节点时 它也很有用
  • 有没有办法在Ejabberd上用Strope实现“Message Seen”功能?

    我只是想知道是否有一个用于消息传递收据的 Strope 插件可以与 Ejabberd 一起使用 我想了解消息传递收据是如何工作的 Strope 是否有任何文档 插件 实现消息传递回执 http xmpp org extensions xep
  • 调用函数时Erlang“未绑定变量”

    我正在尝试将整数参数 N 传递给cake并返回一个大小为 N 的 2 的平方列表 为了示例 例如面包店 蛋糕 3 gt 4 4 4 这是我到目前为止所做的尝试 module bakery export cake 1 Foo fun X gt
  • 获取ERLANG中的最长公共子序列

    我是这个 ERLANG 的新手 我了解基础知识 这就像计划 但范围更广 我知道如何创建一个函数 但在创建一个获取最长公共子序列的函数时遇到问题 lcs str1 str2 是一个接受两个字符串并输出一个整数的函数 lcs algorithm
  • 从挂钩的 exe 获取详细的故障转储

    我正在尝试查找我的程序与游戏挂钩的问题 这是 VC 基本上我启动该程序 然后使用 SDL 连接到它 当我从 VS2010 运行代码时 一切正常 但是当我尝试从命令提示符运行时 我的程序可以启动游戏 但之后游戏立即崩溃 我正在查看 Windo
  • Erlang dict的时间复杂度

    我想知道 Erlang OTP 是否dict模块是作为哈希表实现的 在这种情况下它是否能提供这样的性能 平均情况 Search O 1 n k Insert O 1 Delete O 1 n k 最坏的情况下 Search O n Inse
  • 创建现有 ram 表的 mnesia disk_copies

    我有一个完整的 mnesia ram copies only 数据库 但在将 disk copy 表添加到节点时遇到问题 目前我这样做 创建我所有的 ram copy 表 节点 在disk copy to be节点上启动mnesia 使用以

随机推荐