web-dev-qa-db-ja.com

Ejabberd Startが失敗するのはなぜですか?

ejabberd 2.1.10-2サーバーにUbuntu 12.04.1をインストールしようとしています。これは新規インストールであり、ejabberdが正常にインストールされることはありません。

インストール

毎回、apt-getはこれに固執します。

Setting up ejabberd (2.1.10-2ubuntu1) ...
Generating SSL certificate /etc/ejabberd/ejabberd.pem...

Creating config file /etc/ejabberd/ejabberd.cfg with new version
Starting Jabber server: ejabberd............................................................ failed.

ドットは、タイムアウトになるか、beambeam.smpepmd、およびejabberdの各プロセスを「killall」するまで、永遠に続きます。すべてのファイアウォール制限をオフにしました。

インストールがハングしている間のepmd -namesの出力は次のとおりです。

epmd: up and running on port 4369 with data:
name ejabberdctl at port 42108
name ejabberd at port 39621

そして、失敗した後:

epmd: up and running on port 4369 with data:
name ejabberd at port 39621

同時に(実行中と実行後)、netstat -atnp | grep 5222netstat -atnp | grep 5280の両方の出力は空です。


クラッシュファイル

/var/log/ejabber/erl_crash.dumpにクラッシュダンプファイルが作成されます。スローガン(クラッシュの理由)は次のとおりです。

Slogan: Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})

生きてる?

service ejabberd startでejabberdを再起動しようとするたびに、同じことが起こります-実行する前にすべてのプロセスを強制終了した場合でも。

ただし、上記のプロセスをすべて強制終了し、su - ejabberd -c /usr/sbin/ejabberdを実行すると、次の出力が得られます。

Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:0] [kernel-poll:false]

Eshell V5.8.5  (abort with ^G)
(ejabberd@ns1)1> 
=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.478.0>:ejabberd_listener:166) : Reusing listening port for 5222

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.479.0>:ejabberd_listener:166) : Reusing listening port for 5269

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.480.0>:ejabberd_listener:166) : Reusing listening port for 5280

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.40.0>:ejabberd_app:72) : ejabberd 2.1.10 is started in the node ejabberd@ns1

次に、サーバーが実行されているように見えます。 http://mydomain.com:5280/admin/にアクセスすると、ログインプロンプトが表示されます。もちろん、アカウントを作成しないとログインできません。

現時点では、netstat -atnp | grep 5222およびnetstat -atnp | grep 5280の出力は次のとおりです。

tcp        0      0 0.0.0.0:5222            0.0.0.0:*               LISTEN      19347/beam      
tcp        0      0 0.0.0.0:5280            0.0.0.0:*               LISTEN      19347/beam      

ejabberdctl

Ejabberdが実行されているように見える場合でも、ejabberdctlで何をしようとしても失敗します。例:ユーザーを登録しよう:

root@ns1:~# ejabberdctl register myusername mydomain.com mypassword
Failed RPC connection to the node ejabberd@ns1: nodedown

何が間違っているのかわかりません。これは、同じソフトウェアがインストールされている2つの異なるサーバーで発生します(実際にはほとんど何もありません)。助けてください。ありがとう。

9
Andrew Ensley

この問題は、デーモンがejabber構成ファイルで指定したホスト名のIPアドレスを判別できなかったときに一度発生しました。私の解決策は、/ etc/hostsファイルを編集して、パブリックIPアドレスとejabberが応答するドメインのホスト名エントリがあることを確認することでした。

0.0.0.0 hostname.domain.com hostname
1.1.1.1 ns1.yahoo.com ns1

さて、あなたは写真を取得します。お役に立てば幸いです。

7
Frank Barcenas