[mohaa] Server restart script

Josh Berry games at chickenmonkey.co.uk
Wed Aug 18 07:01:53 EDT 2004


Ahh, thats a much better way of doing the same thing I was trying to get
across. gawk has never been one of my strong points.

Josh

On Wed, 2004-08-18 at 09:20, Luca Fabbro wrote:
> I'm using the following files to kill the right mohaa process
> 
> I'm not using screen so if you whant to use it you shold change the row 
> that starts the server :)
> 
> A kinfd of config in one file
> 
> #Root directory
> GAMEDIR="/usr/local/games/mohaa"
> #Program to run
> PROG="./mohaa_lnxded"
> #Port
> PORT="12210"
> #Gamespy port
> GSPORT="12307"
> #Config
> CONFIG="my_mohaa.cfg"
> 
> The start up script
> 
> #Put here path to config file
> . my_config_file
> #Enters game dir
> cd $GAMEDIR
> #Loop forever
> while [ 1 ]
> do
> #Check for a specific IP to set
> if [ "$IP" == "" ]
> then
>   IPS=""
> else
>   IPS=" +set net_IP $IP"
> fi
> #Starts the server
> $PROG +exec $CONFIG +set net_port $PORT$IPS +set net_gamespy_port $GSPORT 
> +set vm_game 0 +set ttycon 0 +set dedicated 2
> # Sleep a while
> sleep 10
> done
> 
> The kill script is the following
> #Put here path to config file
> . my_config_file
> #Searches for pid of server
> ps auxwww | grep $PROG | grep $PORT | grep $CONFIG | grep -v grep | gawk 
> '{print $2}' | xargs kill
> #Checks kill exit status
> if [ 0 != $? ]
> then
>      echo "Server Down"
> else
>      echo "Server Killed"
> fi
> 
> Hope that this helps
> 
> Ciao
>          Luca
> 
> At 02.41 18/08/2004, you wrote:
> >Hey Josh, i got that script working to write the PID file, and it displays
> >the PID with other numbers Quote:
> >
> >    3887  2141 69 03
> >
> >Could you help me with a full script that could run that then kill the prces
> >number which would be 3887,
> >
> >Would be the greatest help iv had.
> >
> >Thankyou
> >----- Original Message -----
> >From: "Josh Berry" <games at chickenmonkey.co.uk>
> >To: <mohaa at icculus.org>
> >Sent: Wednesday, August 18, 2004 12:09 AM
> >Subject: Re: [mohaa] Server restart script
> >
> >
> > > For a quick and very, very dirty hack you can do:
> > >
> > > ps -ef | grep mohaa_lnxded | grep -v grep > temp; sed 's/    /:/g' temp
> > > > temp2; gawk -F: '{ print $2 }' temp2
> > >
> > > This will print the PID of the mohaa process to console. Alternatively
> > > you could add a "> pid.txt" onto the end to write the pid to a file
> > > called pid.txt. Note that this will create two temporary files in the
> > > location of the script.
> > >
> > > You can then read from the file and into other scripts to do whatever
> > > with.
> > >
> > > If you run multiple servers on one box then you will have to modify the
> > > grep bit to make it return only a single line ... so for example
> > >
> > > ps -ef | grep mohaa_lnxded | grep 123.123.123.123 | grep -v grep > temp
> > >
> > > where 132.etc is the IP address of your server (assuming you have "+set
> > > net_IP 123.123.123.123" in the startup line for your server so it
> > > displays when you do a ps -ef
> > >
> > > Hope that helps
> > > josh
> > >
> > > On Tue, 2004-08-17 at 21:47, Andrew (KARZAC) Furbey wrote:
> > > > You can run scripts up using php commands over the web(aslong as its on
> >the
> > > > same box), thats how i can start my servers, im trying to figure away
> >for a
> > > > script to find the PID for a program running and kill it, but the PID
> > > > changes everytime, im not that advanced at coding yet :/
> > > >
> > > >
> > > > ----- Original Message -----
> > > > From: "Robert Mount" <rmount at pobox.com>
> > > > To: <mohaa at icculus.org>
> > > > Sent: Tuesday, August 17, 2004 6:40 PM
> > > > Subject: [mohaa] Server restart script
> > > >
> > > >
> > > > > ----- Original Message -----
> > > > > From: "Andrew (KARZAC) Furbey" <andrewfurbey at hotmail.com>
> > > > > To: <mohaa at icculus.org>
> > > > > Sent: Tuesday, August 17, 2004 11:53 AM
> > > > > Subject: Re: [mohaa] mohaa process freezes
> > > > >
> > > > >
> > > > > > does anyone know of a script that can restart a server when it
> >crashes
> > > > BUT
> > > > > > it leaves the procces running, i think it might be what your talking
> > > > > > about,
> > > > > > but i was running the server as "root", and it used to crash about
> >twice
> > > > a
> > > > > > day also, then created a user account and started it via that, and
> >its
> > > > > > still
> > > > > > running, no crashes 2 days later.
> > > > >
> > > > > Here's my script:
> > > > >
> > > > > ****
> > > > > #!/bin/bash
> > > > > #
> > > > > # MOH Server loop
> > > > > #
> > > > > clear
> > > > >
> > > > > while [ 1 ]         # Loop `forever'
> > > > > do
> > > > > echo "Starting the server"
> > > > > cd /home/mohsh01
> > > > > screen -m -D -S mohsh01 ./spearhead_lnxded +set net_ip 1.1.1.1 +exec
> > > > > server.cfg
> > > > > sleep 60
> > > > > echo "Done sleeping"
> > > > >
> > > > > done
> > > > > *****
> > > > >
> > > > > I use this command from another script to start my servers:
> > > > > su mohsh01 -c "/opt/control/mohsh01 &"
> > > > >
> > > > > I run this as the user "mohsh01" not as root.  Only problem with this
> >is
> > > > > there's no web control for it that i can figure out.  I'd love to have
> >a
> > > > > looper (as above) with some way to shut the server down over the web.
> > > > >
> > > > > --Rob
> > > > >
> > > > >
> > > > >
> > >
> > >
> 




More information about the Mohaa mailing list