View Single Post
  #1  
Old 11-01-2013, 03:58 AM
HnathBST
Sarnak
 
Join Date: Feb 2007
Location: Sunset Home
Posts: 71
Default Linux Start/Stop script

I have been using the same start script for a while now and I finally decided to modify it and make it my own.

File: EQServer.sh
Code:
ulimit -c unlimited
case "$1" in
	start)
		export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

		rm -rf logs/*.log
		chmod --recursive ugo+rwx quests

		#sleep 5
		echo Loading Shared Mem...
		./shared_memory > /dev/null 2>&1 &

		sleep 2
		echo Starting World Server...
		./world > /dev/null 2>&1 &
		echo $! > world.pid

		sleep 3
		echo Starting Query Server...
		./queryserv > /dev/null 2>&1 &
		echo $! > queryserv.pid

		sleep 5
		echo Starting the Zone Launcher...
		./eqlaunch zone > /dev/null 2>&1 &
		echo $! > eqlaunch.pid

		sleep 5
		echo The server is mostly ready... Give it a couple of minutes
		echo to load stuff from the database before the users start  logging in.
		;;
	stop)
		kill `cat world.pid`
		kill `cat queryserv.pid`
		kill `cat eqlaunch.pid`
		rm -f *.pid
		echo All server components have been exited.
		;;
	restart|reload)
		$0 stop
		$0 start
		;;
	status)
		if [ -f world.pid ] && ps -p `cat world.pid` > /dev/null
		then
			echo -e World Server '\t\t'  [$(tput bold)$(tput setaf 2)UP$(tput sgr0)]
		else
			echo -e World Server '\t\t' [$(tput bold)$(tput setaf 1)DOWN$(tput sgr0)]
		fi
		if [ -f queryserv.pid ] && ps -p `cat queryserv.pid` > /dev/null
                then
                        echo -e Query Server '\t\t' [$(tput bold)$(tput setaf 2)UP$(tput sgr0)]
                else
                        echo -e Query Server '\t\t' [$(tput bold)$(tput setaf 1)DOWN$(tput sgr0)]
                fi
		if [ -f eqlaunch.pid ] && ps -p `cat eqlaunch.pid` > /dev/null
                then
                        echo -e Zone Launcher '\t\t' [$(tput bold)$(tput setaf 2)UP$(tput sgr0)]
                else
                        echo -e Zone Launcher '\t\t' [$(tput bold)$(tput setaf 1)DOWN$(tput sgr0)]
                fi
		;;
	help|*)
		printf "Usage: \n ./EQServer.sh [start|stop|reload|restart|status|help]"
		printf "\n\n"
		printf " start\t\tStarts the server components\n"
		printf " stop\t\tStops all the server components started by this script\n"
		printf " restart/reload\tRestarts the server\n"
		printf " status\t\tLists the status of the server components\n"
		printf " help\t\tDisplays this message\n"
		;;

	esac
exit 0
Drop this in your server folder (with zone and world...) and execute it by running: ./EQServer.sh

Usage:
Code:
./EQServer.sh [start|stop|reload|restart|status|help]

 start		        Starts the server components
 stop		        Stops all the server components started by this script
 restart/reload	        Restarts the server
 status 		Lists the status of the server components
 help		        Displays this message
I know this works on Fedora (and likely centos/redhat etc) I haven't used it on any other flavor of linux so your results may vary.

--Webbe
Reply With Quote