Erlang `ejabberdctl start`results in";“内核pid终止”;错误——我该怎么办?
我在谷歌上搜索了三个小时,但没有结果 我有一个ejabberd安装,它不是用apt安装的。它是从源代码安装的,里面没有名为ejabberd的程序。启动和停止,一切都通过ejabberdctl完成 它完美地运行了一个月,突然有一天,它以臭名昭著的速度停了下来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
kernel pid terminated error
任何时候我都可以
sudo ejabberdctl start --node ejabberd@MasterService
生成一个erl_崩溃文件,当我尝试
ejabberdctl
我明白了
Failed to connect to RPC at node ejabberd@MasterService
现在我尝试了什么
我没有别的地方可去,也不知道还能去哪里。任何帮助都将不胜感激 您必须分析崩溃转储,试图猜测它失败的原因 为了执行这项任务,Erlang有一个特殊的webtool(称为,
webtool
),可以从中使用一个特殊的应用程序—崩溃转储查看器—加载转储并在崩溃时检查Erlang进程的堆栈跟踪
你必须
# apt-get install erlang-webtool erlang-observer
$ erl
(在那里采取了进一步的行动。)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(服务器的主机名)中打印的名称webtool:stop().
在运行的Erlang解释器中。然后通过运行
q().
然后稍等片刻,或按Ctrl-g,然后输入字母q
,然后按回车键相关链接为:和。您确定标准(或配置)端口(5222、5269、5223等)上没有侦听任何内容吗?我的意思是,
ejabberd
的实例没有运行。