web-dev-qa-db-ja.com

ejabberdはコマンドで実行されますが、サービス/ ejabberdctl経由では実行されません

Ejabberdを設定しましたが、コマンドラインからejabberdを実行すると、正常に実行され、接続したり、他の人とチャットしたりできます。

走ると

service ejabberd start

すべてが正常に実行されますが、サービスは起動しません。

走ると

ejabberdctl start

ejabberdは、ノードがダウンしていて、それ以上の情報を提供しないと言います。

走ると

serivce ejabberd live

私は実際にいくつかの出力を取得します!これが私が得たものです...

Erlang R15B01 (erts-5.9.1) [source] [64-bit] [async-threads:0] [kernel-poll:false]

Eshell V5.9.1  (abort with ^G)
(ejabberd@gcmysql)1> Mnesia(ejabberd@gcmysql): Data may be missing, Corrupt logfile     deleted: "/var/lib/ejabberd/LATEST.LOG", {file_error,
                                                                                                             "/var/lib/ejabberd/LATEST.LOG",
                                                                                                     eacces}

=ERROR REPORT==== 30-Jan-2013::12:51:30 ===
Mnesia(ejabberd@gcmysql): ** ERROR ** (core dumped to file: "/var/lib/ejabberd/MnesiaCore.ejabberd@gcmysql_1359_568290_621095")
 ** FATAL ** {error,{"Cannot open dets table",offline_msg,
                 [{file,"/var/lib/ejabberd/offline_msg.DAT"},
                  {type,bag},
                  {keypos,2},
                  {repair,true}],
                 {file_error,"/var/lib/ejabberd/offline_msg.DAT",eacces}}}

=ERROR REPORT==== 30-Jan-2013::12:51:40 ===
Mnesia(ejabberd@gcmysql): ** ERROR ** mnesia_event got unexpected event: {'EXIT',
                                                                      <0.67.0>,
                                                                      killed}

=INFO REPORT==== 30-Jan-2013::12:51:40 ===
application: mnesia
exited: killed
type: permanent
{error_logger,{{2013,1,30},{12,51,41}},crash_report,[[{initial_call,{application_master,init,['Argument__1','Argument__2','Argument__3','Argument__4']}},{pid,<0.39.0>},{registered_name,[]},{error_info,{exit,{bad_return,{{ejabberd_app,start,[normal,[]]},{'EXIT',{"{application_terminated,mnesia,killed}",{gen_server,call,[application_controller,{load_application,crypto},infinity]}}}}},[{application_master,init,4,[{file,"application_master.erl"},{line,138}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,227}]}]}},{ancestors,[<0.38.0>]},{messages,[{'EXIT',<0.40.0>,normal}]},{links,[<0.38.0>]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,987},{stack_size,24},{reductions,153}],[]]}
{"Kernel pid terminated",application_controller,"{application_terminated,mnesia,killed}"}

Crash dump was written to: /var/log/ejabberd/erl_crash.dump
Kernel pid terminated (application_controller) ({application_terminated,mnesia,killed})

私は今一週間頭を悩ませてきましたが、どこにも行きません。助けてください!

更新:これを捨てるだけです。ローカルユーザーにはコマンドを起動するためのアクセス権がないため、上記のコマンドをrootとして実行しています。 mnesiaデータベース(ファイル?)がroot:rootに変更されている可能性はありますか?

2
GameCharmer

実行後

find / -name ejabberd

/ var/lib/ejabberdに出くわしました。ディレクトリにCDを挿入すると、mnesiaファイルがrootに変更されていることがわかりました。ファイルをejabberd:ejabberdに再変更し、実行しました

service ejabbered start

そしてそれは問題なく起動しました。再起動後、サービスは通常どおり再開されました。

うまくいけば、これはアップのままで、奇妙なノードダウンの問題に遭遇した人は誰でもこれを見つけて何が起こっているのかを理解するでしょう。

2
GameCharmer