Created
November 20, 2011 11:24
-
-
Save renebakx/1380166 to your computer and use it in GitHub Desktop.
starting mongo on OSX
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#MongoDB startup script with status and proper lockfile removing | |
#Version 1.0.1 20-nov-2011 Rene Bakx ([email protected]) | |
#Created on OS-X 10.7 but should work on other versions | |
if [ -z $1 ] ; then | |
echo "Usage: $0 [start|stop|restart|status] " | |
exit 1 | |
fi | |
# Source the common setup functions for startup scripts | |
test -r /etc/rc.common || exit 1 | |
. /etc/rc.common | |
# Set up some defaults | |
DBPATH="/Users/rene/Sites/mongodb/data" | |
LOGPATH="/Users/rene/Sites/mongodb/mongodb.log" | |
MONGOD_PORT=27017 | |
PIDFILE=$DBPATH/mongod.lock | |
pid="" | |
StartService(){ | |
/Users/rene/Sites/mongodb/bin/mongod run --dbpath=$DBPATH --logpath=$LOGPATH --port $MONGOD_PORT > /dev/null 2>&1 & | |
sleep 1 | |
getPID | |
echo "Started mongo on pid $pid" | |
} | |
getPID(){ | |
# If the lockfile exists, it contains the PID | |
if [ -e $PIDFILE ]; then | |
pid=`cat $PIDFILE` | |
fi | |
# If we don't have a PID, check for it | |
if [ "$pid" == "" ]; then | |
pid=`/usr/sbin/lsof -i tcp:$MONGOD_PORT | tail -1 | awk '{print $2}'` | |
fi | |
# There's no pid, mongo is not running | |
if [ "$pid" == "" ]; then | |
echo "Mongo is not running" | |
exit 0; | |
fi | |
} | |
StopService() { | |
getPID | |
# If we've found a PID, let's kill it | |
if [ "$pid" != "" ]; then | |
kill -3 $pid | |
echo "Stopped mongo on pid $pid" | |
if [ -e $PIDFILE ]; then | |
pid=`rm $PIDFILE` | |
fi | |
fi | |
} | |
RestartService() { | |
StopService | |
sleep 3 | |
StartService | |
} | |
StatusService(){ | |
getPID | |
# If we've found a PID, let's kill it | |
if [ "$pid" != "" ]; then | |
echo "Mongo is running on pid $pid" | |
fi | |
} | |
case $1 in | |
start ) StartService ;; | |
stop ) StopService ;; | |
restart) RestartService ;; | |
status) StatusService ;; | |
* ) echo "$0: unknown argument: $1";; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment