102 lines
2.4 KiB
Bash
102 lines
2.4 KiB
Bash
|
#!/bin/bash
|
||
|
case $1 in
|
||
|
start)
|
||
|
if [ -f "/var/lib/mongodb/mongod.lock" ]; then
|
||
|
exit 0
|
||
|
else
|
||
|
self_pid=$$
|
||
|
pid=`ps aux | grep mongod | grep -v 'service' | grep -v 'grep' | grep -v '/etc/init.d' | awk '{print $2}'`;
|
||
|
COUNTER=0
|
||
|
for i in $pid
|
||
|
do
|
||
|
if [ -f "/proc/$i/status" ]; then
|
||
|
echo "$i" >> /var/lib/mongodb/mongod.lock;
|
||
|
COUNTER=$((COUNTER+1))
|
||
|
fi
|
||
|
done
|
||
|
if [ $COUNTER == 0 ]; then
|
||
|
echo "starting mongo."
|
||
|
sudo mongod --config /etc/mongod.conf &
|
||
|
exit 0
|
||
|
else
|
||
|
echo "mongo is already running."
|
||
|
fi
|
||
|
fi
|
||
|
;;
|
||
|
stop)
|
||
|
echo "stoping mongo."
|
||
|
if [ -f "/var/lib/mongodb/mongod.lock" ]; then
|
||
|
sudo kill -s TERM `cat /var/lib/mongodb/mongod.lock`
|
||
|
sudo rm -f /var/lib/mongodb/mongod.lock
|
||
|
else
|
||
|
pid=`ps aux | grep mongod | grep -v 'service' | grep -v 'grep' | grep -v '/etc/init.d' | awk '{print $2}'`;
|
||
|
for i in $pid
|
||
|
do
|
||
|
kill -s TERM $i
|
||
|
done
|
||
|
fi
|
||
|
;;
|
||
|
restart|reload)
|
||
|
echo "stoping mongo."
|
||
|
if [ -f "/var/lib/mongodb/mongod.lock" ]; then
|
||
|
sudo kill -s TERM `cat /var/lib/mongodb/mongod.lock`
|
||
|
sudo rm -f /var/lib/mongodb/mongod.lock
|
||
|
else
|
||
|
pid=`ps aux | grep mongod | grep -v 'service' | grep -v 'grep' | grep -v '/etc/init.d' | awk '{print $2}'`;
|
||
|
for i in $pid
|
||
|
do
|
||
|
kill -s TERM $i
|
||
|
done
|
||
|
fi
|
||
|
sudo mongod --config /etc/mongod.conf &
|
||
|
exit 0
|
||
|
;;
|
||
|
status)
|
||
|
if [ -f "/var/lib/mongodb/mongod.lock" ]; then
|
||
|
pid=`cat /var/lib/mongodb/mongod.lock`
|
||
|
COUNTER=0
|
||
|
ERRORPID=0
|
||
|
for i in $pid
|
||
|
do
|
||
|
if [ -f "/proc/$i/status" ]; then
|
||
|
COUNTER=$((COUNTER+1))
|
||
|
else
|
||
|
ERRORPID=1
|
||
|
fi
|
||
|
done
|
||
|
if [ $ERRORPID == 0 ] && [ $COUNTER != 0 ]; then
|
||
|
echo "mongo is already running"
|
||
|
else
|
||
|
COUNTER=0
|
||
|
pid=`ps aux | grep mongod | grep -v 'service' | grep -v 'grep' | grep -v '/etc/init.d' | awk '{print $2}'`;
|
||
|
cat /dev/null > /var/lib/mongodb/mongod.lock;
|
||
|
for i in $pid
|
||
|
do
|
||
|
if [ -f "/proc/$i/status" ]; then
|
||
|
echo "$i" >> /var/lib/mongodb/mongod.lock;
|
||
|
COUNTER=$((COUNTER+1))
|
||
|
fi
|
||
|
done
|
||
|
if [ $COUNTER == 0 ]; then
|
||
|
echo "mongo is not running."
|
||
|
else
|
||
|
echo "mongo is already running."
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
COUNTER=0
|
||
|
pid=`ps aux | grep mongod | grep -v 'service' | grep -v 'grep' | grep -v '/etc/init.d' | awk '{print $2}'`;
|
||
|
for i in $pid
|
||
|
do
|
||
|
if [ -f "/proc/$i/status" ]; then
|
||
|
echo "$i" >> /var/lib/mongodb/mongod.lock;
|
||
|
COUNTER=$((COUNTER+1))
|
||
|
fi
|
||
|
done
|
||
|
if [ $COUNTER == 0 ]; then
|
||
|
echo "mongo is not running."
|
||
|
else
|
||
|
echo "mongo is already running."
|
||
|
fi
|
||
|
fi
|
||
|
esac
|