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.