--- mongodb.rc 2011-11-17 22:09:34.000000000 -0700 +++ mongodb.rc.new 2011-11-18 13:20:32.373441657 -0700 @@ -5,10 +5,13 @@ . /etc/rc.d/functions PID=$(pidof /usr/bin/mongod) +DBPATH=$(grep 'dbpath' /etc/mongodb.conf | cut -d"=" -f2) +LOCKFILE=$DBPATH/mongod.lock + case "$1" in start) stat_busy "Starting mongodb" - [ -z "$PID" ] && /bin/su mongodb -c "/usr/bin/mongod --config /etc/mongodb.conf --fork" > /dev/null + [ -z "$PID" ] && /bin/su mongodb -s /bin/bash -c "/usr/bin/mongod --config /etc/mongodb.conf &" > /var/log/mongod 2>&1 if [ $? -gt 0 ]; then stat_fail else @@ -18,7 +21,7 @@ ;; stop) stat_busy "Stopping mongodb" - [ ! -z "$PID" ] && /bin/su mongodb -c "/usr/bin/mongod --config /etc/mongodb.conf --shutdown" &> /dev/null + [ ! -z "$PID" ] && kill $PID &> /dev/null if [ $? -gt 0 ]; then stat_fail else @@ -26,6 +29,7 @@ while [ ! -z "$(pidof /usr/bin/mongod)" ]; do sleep 1; done + [ -f "$LOCKFILE" ] && rm -f $LOCKFILE &> /dev/null stat_done fi ;;