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
							 |