--- init.d-mongod 2014-07-07 12:55:06.000000000 -0400 +++ init.d-mongod.multi 2014-08-14 09:43:05.000000000 -0400 @@ -13,17 +13,13 @@ # things from mongod.conf get there by mongod reading it -# NOTE: if you change any OPTIONS here, you get what you pay for: -# this script assumes all options are in the config file. -CONFIGFILE="/etc/mongod.conf" -OPTIONS=" -f $CONFIGFILE" -SYSCONFIG="/etc/sysconfig/mongod" +if [ -f "/etc/mongod.conf" ]; then + CONFIGFILES="/etc/mongod.conf" +else + CONFIGFILES=`/bin/ls /etc/mongod.*.conf` +fi -# FIXME: 1.9.x has a --shutdown flag that parses the config file and -# shuts down the correct running pid, but that's unavailable in 1.8 -# for now. This can go away when this script stops supporting 1.8. -DBPATH=`awk -F'[:=]' -v IGNORECASE=1 '/^[[:blank:]]*dbpath[[:blank:]]*[:=][[:blank:]]*/{print $2}' "$CONFIGFILE" | tr -d '[:blank:]'` -PIDFILEPATH=`awk -F'[:=]' -v IGNORECASE=1 '/^[[:blank:]]*pidfilepath[[:blank:]]*[:=][[:blank:]]*/{print $2}' "$CONFIGFILE" | tr -d '[:blank:]'` +SYSCONFIG="/etc/sysconfig/mongod" mongod=${MONGOD-/usr/bin/mongod} @@ -57,8 +53,11 @@ ulimit -u 32000 echo -n $"Starting mongod: " - daemon --user "$MONGO_USER" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1" - RETVAL=$? + for cfile in $CONFIGFILES ; do + daemon --user "$MONGO_USER" "$NUMACTL $mongod -f $cfile >/dev/null 2>&1" + RETVAL=$? + [ $RETVAL -ne 0 ] && break + done echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod } @@ -66,8 +65,11 @@ stop() { echo -n $"Stopping mongod: " - killproc -p "$PIDFILEPATH" -d 300 /usr/bin/mongod - RETVAL=$? + for cfile in $CONFIGFILES ; do + $mongod --shutdown -f $cfile --logpath /dev/null + RETVAL=$? + [ $RETVAL -ne 0 ] && break + done echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/mongod }