Erlang `ejabberdctl start`results in";“内核pid终止”;错误——我该怎么办?

Erlang `ejabberdctl start`results in";“内核pid终止”;错误——我该怎么办?,erlang,ejabberd,crash-dumps,Erlang,Ejabberd,Crash Dumps,我在谷歌上搜索了三个小时,但没有结果 我有一个ejabberd安装,它不是用apt安装的。它是从源代码安装的,里面没有名为ejabberd的程序。启动和停止,一切都通过ejabberdctl完成 它完美地运行了一个月,突然有一天,它以臭名昭著的速度停了下来 kernel pid terminated error 任何时候我都可以 sudo ejabberdctl start --node ejabberd@MasterService 生成一个erl_崩溃文件,当我尝试 ejabberdctl

我在谷歌上搜索了三个小时,但没有结果

我有一个ejabberd安装,它不是用apt安装的。它是从源代码安装的,里面没有名为ejabberd的程序。启动和停止,一切都通过ejabberdctl完成

它完美地运行了一个月,突然有一天,它以臭名昭著的速度停了下来

kernel pid terminated error
任何时候我都可以

sudo ejabberdctl start --node ejabberd@MasterService
生成一个erl_崩溃文件,当我尝试

ejabberdctl
我明白了

Failed to connect to RPC at node ejabberd@MasterService
现在我尝试了什么

  • 尝试停止ejabberd、beam、epmd和重新启动的所有运行过程-不起作用
  • 检查了/etc/hosts和主机名,一切正常。主机名在主机文件中随IP一起提供
  • 检查ejabberdctl.conf文件,确保主机名确实正确,节点名正确
  • 选中。正在创建包含内容的erlange.cookie文件
  • 在整个网络中,搜索以这样或那样的方式引导我找到上面的任何一个


    我没有别的地方可去,也不知道还能去哪里。任何帮助都将不胜感激

    您必须分析崩溃转储,试图猜测它失败的原因

    为了执行这项任务,Erlang有一个特殊的webtool(称为,
    webtool
    ),可以从中使用一个特殊的应用程序—崩溃转储查看器—加载转储并在崩溃时检查Erlang进程的堆栈跟踪

    你必须

  • 安装必要的软件包:

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

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

  • 运行webtool。在最简单的情况下,它将在本地主机上侦听:

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

    如果这种情况发生在服务器上,并且您希望让webtool在某个非本地主机接口上侦听,那么调用实现将更加棘手:

    webtool:start(standard_path, [{port, 8888}, {bind_address, {0, 0, 0, 0}}, {server_name, "server.example.com"}]).
    
    {0,0,0,0}
    IP规范将使它处处侦听,您还可以指定一些更合理的八位字节,如
    {192,168,0,1}
    server\u name
    子句可能使用任意名称-这是将在生成的URL(服务器的主机名)中打印的名称

  • 现在,使用浏览器连接到该工具,导航到“开始工具”菜单项,启动崩溃转储查看器,并在该工具的顶部菜单中显示指向该工具的链接。继续,并找到加载崩溃转储的链接

  • 加载崩溃转储后,尝试在工具的界面上乱转,以查看活动Erlang进程的堆栈跟踪。其中至少有一个应该包含一些可疑的信息,其中应该包含一条错误消息——这就是你在改进你的问题(或者在最后问另一个问题)时所关注的

  • 要退出该工具,请运行

    webtool:stop().
    
    在运行的Erlang解释器中。然后通过运行

    q().
    
    然后稍等片刻,或按Ctrl-g,然后输入字母
    q
    ,然后按回车键


  • 相关链接为:和。

    您确定标准(或配置)端口(5222、5269、5223等)上没有侦听任何内容吗?我的意思是,
    ejabberd
    的实例没有运行。