summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rpm/init.d-mongod45
-rw-r--r--rpm/mongo.spec14
-rw-r--r--rpm/mongod.conf5
3 files changed, 39 insertions, 25 deletions
diff --git a/rpm/init.d-mongod b/rpm/init.d-mongod
index c099ef958d0..2c634f6aa0c 100644
--- a/rpm/init.d-mongod
+++ b/rpm/init.d-mongod
@@ -12,30 +12,37 @@
# things from mongod.conf get there by mongod reading it
+
+
OPTIONS=" -f /etc/mongod.conf"
+SYSCONFIG="/etc/sysconfig/mongod"
mongod=${MONGOD-/usr/bin/mongod}
-pidfile=${PIDFILE-/var/run/mongod.pid}
-lockfile=${LOCKFILE-/var/lock/subsys/mongod}
+
+MONGO_USER=mongod
+MONGO_GROUP=mongod
+
+. "$SYSCONFIG" || true
start()
{
echo -n $"Starting mongod: "
- #daemon --pidfile=${pidfile} $mongod $OPTIONS > /var/log/mongod
- $mongod $OPTIONS > /var/log/mongod 2>&1 &
+ daemon --user "$MONGO_USER" $mongod $OPTIONS
RETVAL=$?
- [ $RETVAL = 0 ] && touch ${lockfile}
- echo OK
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod && success
}
stop()
{
echo -n $"Stopping mongod: "
- #killproc -p ${pidfile} -d 10 $mongod
- #RETVAL=$?
- killall mongod > /dev/null 2>&1
- #[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
- echo OK
+ killproc -p /var/lib/mongo/mongod.lock -t30 -TERM /usr/bin/mongod
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/mongod &7 success
+}
+
+restart () {
+ stop
+ start
}
ulimit -n 12000
@@ -48,15 +55,17 @@ case "$1" in
stop)
stop
;;
- restart)
- stop
- start
+ restart|reload|force-reload)
+ restart
+ ;;
+ condrestart)
+ [ -f /var/lock/subsys/mongodb ] && restart || :
+ ;;
+ status)
+ status $mongod
;;
-# status)
-# status -p ${pidfile} $mongod
-# ;;
*)
- echo $"Usage: $0 {start|stop|restart}"
+ echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
RETVAL=1
esac
diff --git a/rpm/mongo.spec b/rpm/mongo.spec
index 07205596531..1c9875c019d 100644
--- a/rpm/mongo.spec
+++ b/rpm/mongo.spec
@@ -23,6 +23,7 @@ client utilities.
%package server
Summary: mongo server, sharding server, and support scripts
Group: Applications/Databases
+Requires: mongo
%description server
Mongo (from "huMONGOus") is a schema-free document-oriented database.
@@ -59,16 +60,16 @@ cp rpm/mongod.conf $RPM_BUILD_ROOT/etc/mongod.conf
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
cp rpm/mongod.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/mongod
mkdir -p $RPM_BUILD_ROOT/var/lib/mongo
-mkdir -p $RPM_BUILD_ROOT/var/log
-touch $RPM_BUILD_ROOT/var/log/mongo
+mkdir -p $RPM_BUILD_ROOT/var/log/mongo
+touch $RPM_BUILD_ROOT/var/log/mongo/mongod.log
%clean
scons -c
rm -rf $RPM_BUILD_ROOT
%pre server
-#/usr/sbin/useradd -M -o -r -d /var/lib/mongo -s /bin/bash \
-# -c "mongod" mongod > /dev/null 2>&1 || :
+/usr/sbin/useradd -M -r -U -d /var/lib/mongo -s /bin/false \
+ -c mongod mongod > /dev/null 2>&1
%post server
if test $1 = 1
@@ -120,8 +121,9 @@ fi
/etc/rc.d/init.d/mongod
/etc/sysconfig/mongod
#/etc/rc.d/init.d/mongos
-%attr(0755,root,root) %dir /var/lib/mongo
-%attr(0640,root,root) %config(noreplace) %verify(not md5 size mtime) /var/log/mongo
+%attr(0755,mongod,mongod) %dir /var/lib/mongo
+%attr(0755,mongod,mongod) %dir /var/log/mongo
+%attr(0640,mongod,mongod) %config(noreplace) %verify(not md5 size mtime) /var/log/mongo/mongod.log
%files devel
/usr/include/mongo
diff --git a/rpm/mongod.conf b/rpm/mongod.conf
index 0c871866cde..b8897b27b4c 100644
--- a/rpm/mongod.conf
+++ b/rpm/mongod.conf
@@ -1,7 +1,10 @@
# mongo.conf
#where to log
-logpath=/var/log/mongod
+logpath=/var/log/mongo/mongod.log
+
+# fork and run in background
+fork = true
#port = 27017