Mongo init
| Fiche express | |
|---|---|
| Type | script d'init SysV (legacy) |
| Équivalent moderne | unité systemd mongod.service
|
| Voir aussi | MongoDB · Mongo cli |
Script d'init SysV historique pour démarrer/arrêter le démon mongod, typique d'une
installation MongoDB manuelle (décompression d'archive, sans paquet système) sur une
distribution ancienne à base de chkconfig/init.d (RHEL5/6 et
équivalents).
Sur une distribution récente, ce script n'est plus nécessaire : les paquets officiels
mongodb-org fournissent une unité systemd, pilotable directement avec
systemctl enable --now mongod. Le contenu ci-dessous est conservé pour les
environnements legacy encore basés sur ce modèle.
Mise en place
chmod 755 /etc/init.d/mongodb
chown root:root /etc/init.d/mongodb
chkconfig --add mongodb
chkconfig mongodb on
Bug corrigé : la source utilisait un tiret cadratin (—add) au lieu du double
tiret attendu par chkconfig (--add) — probablement une conversion
typographique automatique lors d'une copie de texte ; la commande telle quelle échoue.
Pour une installation par archive décompressée (pas de paquet), ajouter les binaires au
PATH du compte d'exploitation, dans ~/.bash_profile :
PATH=$PATH:$HOME/bin:/usr/local/mongodb/bin
Script
#!/bin/bash
#
# mongodb Startup script for the mongodb server
#
# chkconfig: - 64 36
# description: MongoDB Database Server
#
# processname: mongodb
#
# Source function library
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/mongodb ]; then
. /etc/sysconfig/mongodb
fi
prog="mongod"
mongod="/usr/local/mongodb/bin/mongod"
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon $mongod "--fork --logpath /var/log/mongodb.log --logappend 2>&1 >>/var/log/mongodb.log"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
reload() {
echo -n $"Reloading $prog: "
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
reload)
reload
;;
status)
status $mongod
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
RETVAL=1
esac
exit $RETVAL
Notes de compatibilité
Ce script cible le modèle SysV/chkconfig (RHEL5/6 et équivalents anciens). Sur une distribution gérée par systemd (RHEL7+, Debian récent...), utiliser directement l'unité fournie par le paquet officiel :
systemctl enable --now mongod
systemctl status mongod