¿Por qué falla Ejabberd Start?

9

Estoy intentando instalar ejabberd 2.1.10-2en mi Ubuntu 12.04.1servidor. Esta es una instalación nueva, y ejabberd nunca se instala con éxito.

La instalación

Cada vez, apt-get se cuelga de esto:

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.

Los puntos sólo tiene que ir siempre hasta que el tiempo de espera o I 'killall' beam, beam.smp, epmd, y ejabberdprocesos. He desactivado todas las restricciones de firewall.

Aquí está la salida de epmd -namesmientras se cuelga la instalación:

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

Y después de que falla:

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

Al mismo tiempo (durante y después), la salida de ambos netstat -atnp | grep 5222y netstat -atnp | grep 5280está vacía.


The Crash File

Se crea un archivo de volcado por caída en /var/log/ejabber/erl_crash.dump. El eslogan (es decir, el motivo del bloqueo) es:

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

¿Está vivo?

Cada vez que intento relanzar ejabberd service ejabberd start, sucede lo mismo, incluso si eliminé todos los procesos antes de hacerlo.

Sin embargo, cuando elimino todos los procesos enumerados anteriormente y ejecuto su - ejabberd -c /usr/sbin/ejabberd, este es el resultado que obtengo:

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

Entonces, el servidor parece estar ejecutándose. Recibo un mensaje de inicio de sesión cuando accedo http://mydomain.com:5280/admin/. Por supuesto, no puedo iniciar sesión a menos que cree una cuenta.

En este momento, la salida de netstat -atnp | grep 5222y netstat -atnp | grep 5280es la siguiente:

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

Incluso cuando parece que ejabberd se está ejecutando, falla al intentar hacer algo con ejabberdctl. Por ejemplo: tratando de registrar un usuario:

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

No tengo idea de lo que estoy haciendo mal. Esto sucede en dos servidores diferentes que tengo con un software idéntico instalado (realmente no hay mucho de nada). Por favor ayuda. Gracias.

Andrew Ensley
fuente
Solo una suposición, ¿ha intentado adquirir un paquete / binario del sitio web del desarrollador o construir desde la fuente? Además, ¿ha probado instalarlo en una VM (o instalación real) de 12.10?
fouric

Respuestas:

7

Tuve este problema una vez cuando el demonio no pudo determinar la dirección IP del nombre de host que di en el archivo de configuración de ejabber. Mi solución fue editar el archivo / etc / hosts y asegurarme de que hubiera una entrada de nombre de host para mi dirección IP pública y el dominio al que quería que respondiera ejabber.

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

Bueno, te haces una idea. Espero que ayude.

Frank Barcenas
fuente
Lo verifiqué y ya tengo una entrada en mi archivo / etc / hosts con mi nombre de dominio e IP pública. Sin embargo, creo que estás en el camino correcto con esto. Acabo de notar que el mensaje de error dice "Falló la conexión RPC al nodo ejabberd @ ns1". ns1 es el nombre de la máquina pero no es el nombre de dominio. ¿Debería eso mostrar el nombre de dominio allí?
Andrew Ensley
1
sí, claro ... Al menos deberías agregar ns1 al archivo hosts también. como 0.0.0.0 <FQDN> <nombre de host>
Frank Barcenas
Santo ... ni siquiera ... Agregar ns1 a mi archivo / etc / hosts funcionó. Caramba.
Andrew Ensley
1
Me alegra saber que lo has solucionado. Buena suerte y que la fuerza te acompañe. :-)
Frank Barcenas