Skip to main content

Service ejabberd ne démarre pas

S'applique à : Medulla Serveur
Version : Toutes versions
Environnement : On-Premise
Catégorie : Services / ejabberd

Si le service ejabberd ne démarre plus, y compris après un redémarrage du serveur Medulla, il peut être nécessaire de réinitialiser sa base Mnesia.

Attention :
La procédure ci-dessous supprime la base Mnesia locale d'ejabberd. Elle ne doit être utilisée qu'après avoir effectué une sauvegarde complète du dossier /var/lib/ejabberd/.


1. Prérequis

Sauvegarder le dossier ejabberd

Avant toute intervention, effectuer une sauvegarde de l'intégralité du dossier :

/var/lib/ejabberd/

Par exemple :

cp -a /var/lib/ejabberd /var/lib/ejabberd.backup

Vérifier que la sauvegarde est bien présente :

ls -la /var/lib/ejabberd.backup

Installer crudini

La commande crudini est nécessaire pour récupérer les informations permettant de recréer le compte root ejabberd.

apt install crudini

2. Arrêter ejabberd

systemctl stop ejabberd

Vérifier que le service est bien arrêté :

systemctl status ejabberd

3. Réinitialiser la base Mnesia

Supprimer les fichiers contenus dans /var/lib/ejabberd/ tout en conservant le fichier caché .erlang.cookie :

rm -rf /var/lib/ejabberd/*

Information :
La commande rm -rf /var/lib/ejabberd/* ne supprime pas les fichiers cachés. Le fichier .erlang.cookie est donc conservé.

Vérifier son existence avant de poursuivre :

ls -la /var/lib/ejabberd/

Le fichier suivant doit notamment être toujours présent :

.erlang.cookie

4. Redémarrer ejabberd

systemctl start ejabberd

Vérifier l'état du service :

systemctl status ejabberd

Le service doit maintenant être en état :

active (running)

5. Recréer le compte root ejabberd

Une fois ejabberd redémarré, recréer son compte root avec les informations de configuration Medulla :

ejabberdctl register root $(crudini --get /etc/pulse-xmpp-agent/relayconf.ini.local chat domain) $(crudini --get /root/.my.cnf mysql password)

Cette commande récupère automatiquement :

  • le domaine XMPP depuis /etc/pulse-xmpp-agent/relayconf.ini.local ;
  • le mot de passe depuis /root/.my.cnf.

6. Vérification finale

Contrôler une nouvelle fois l'état du service :

systemctl status ejabberd

En cas de nouvel échec, consulter les journaux du service :

journalctl -u ejabberd --no-pager -n 100

Succès :
Si ejabberd est en état active (running) et que le compte root a pu être recréé, la réinitialisation de la base Mnesia est terminée.