X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=mongodb.init;h=99a4d7002059e5f625da797907292a7a50bc6468;hb=c803753d081fd97cf6ecf3c7b36e0fa1dacb4f69;hp=d8bed589ee2437926514b7759476a4b97d049e77;hpb=ab177c48168069c9ba90078b32cdb5a307c67cf1;p=packages%2Fmongodb.git diff --git a/mongodb.init b/mongodb.init old mode 100644 new mode 100755 index d8bed58..99a4d70 --- a/mongodb.init +++ b/mongodb.init @@ -4,7 +4,7 @@ # # chkconfig: 345 60 40 # -# description: mongod is a cache daemon. +# description: mongod is a NoSQL database daemon. # # processname: mongod # pidfile: /var/run/mongod.pid @@ -27,8 +27,17 @@ # Get network config . /etc/sysconfig/network +# Check that networking is up. +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then + msg_network_down "mongod" + exit 1 + fi +else + exit 0 +fi + MONGOD_BIN="/usr/bin/mongod" -MONGOD_LOGFILE="/var/log/mongo/mongod.log" MONGOD_PIDFILE="/var/run/mongod.pid" MONGOD_CONFIG="/etc/sysconfig/mongod" @@ -45,11 +54,21 @@ start() { return fi - msg_starting "mongod" - daemon --pidfile $MONGOD_PIDFILE --user $MONGOD_USER \ - $MONGOD_BIN --config /etc/mongod.conf run - ret=$? - [ $ret = 0 ] || RETVAL=$? + started=0 + for config in /etc/mongod/*.conf ; do + instance=$(basename "$config" .conf) + msg_starting "mongod '$instance' instance" + if [ "$instance" = "default" ] ; then + pidfile="$MONGOD_PIDFILE" + else + pidfile="${MONGOD_PIDFILE%.pid}-$instance.log" + fi + daemon --pidfile "$pidfile" --user $MONGOD_USER \ + $MONGOD_BIN --config "$config" --fork + [ $? -eq 0 ] && started=$(($started + 1)) + done + # at least one started - the service is running + [ $started -eq 0 ] && RETVAL=1 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod } @@ -59,8 +78,16 @@ stop() { return fi - msg_stopping "mongod" - killproc --pidfile $MONGOD_PIDFILE mongod + for config in /etc/mongod/*.conf ; do + instance=$(basename "$config" .conf) + msg_stopping "mongod '$instance' instance" + if [ "$instance" = "default" ] ; then + pidfile="$MONGOD_PIDFILE" + else + pidfile="${MONGOD_PIDFILE%.pid}-$instance.log" + fi + killproc --pidfile "$pidfile" mongod + done rm -f /var/lock/subsys/mongod >/dev/null 2>&1 } @@ -82,8 +109,16 @@ reload() { return fi - msg_reloading "mongod" - killproc --pidfile $MONGOD_PIDFILE mongod -HUP + for config in /etc/mongod/*.conf ; do + instance=$(basename "$config" .conf) + msg_reloading "mongod '$instance' instance" + if [ "$instance" = "default" ] ; then + pidfile="$MONGOD_PIDFILE" + else + pidfile="${MONGOD_PIDFILE%.pid}-$instance.log" + fi + killproc --pidfile "$pidfile" mongod -HUP + done } RETVAL=0