Hey Sebastian,

I've attached my hacked together init.d script for starting the venue server on 
a RHEL box.

Note: the daemonAG() function in the script was stolen the daemon() function in 
/etc/init.d/functions.  It is verbatim except for the actual line that launches 
the program, which I 
changed to this:

su -s /bin/bash - $user -c "$* &" >/dev/null 2>&1

which launches the VenueServer process in a shell of a defined user.

As you'll see in the start() function in the script, I run under a user called 
'ag' - you can change 
that to whatever you need.

This script was kinda just thrown together with bits from other init scripts, 
so I'm sure it could 
be pared down a bit - but it has worked for me for a couple of years now.


Todd











Sebastian Tabarce wrote:
> Hi!
> 
> Has any of you guys tried to automatically start at boot the Venue 
> Server on Fedora Core 4 (or any other OS)?
> I've tried, but with no success.
> First I added this line to rc.local:
> /usr/bin/VenueServer.py
> but Fedora was stuck on start-up after starting the server.
> After modifying it to:
> /usr/bin/VenueServer.py &
> to send the process in background, Fedora starts ok, the server starts 
> and I can see it in the process list, but any client trying to connect 
> to it from the same machine or any other just hangs for ever.
> What am I doing wrong? Suggestions are welcomed, I'm familliar with 
> linux but not a linux expert.....
> Thanks!
> Sebastian
> 
#!/bin/sh
#
# venueServer   Takes care of starting and stopping the 
#               VenueServer
#
# chkconfig: - 50 50
# description: AG VenueServer

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -x /usr/bin/VenueServer.py ] || exit 



# A function to start a program.
daemonAG() {
        # Test syntax.
        local gotbase= force=
        local base= user= nice= bg= pid=
        nicelevel=0
        while [ "$1" != "${1##[-+]}" ]; do
          case $1 in
            '')    echo $"$0: Usage: daemonAG [+/-nicelevel] {program}"
                   return 1;;
            --check)
                   base=$2
                   gotbase="yes"
                   shift 2
                   ;;
            --check=?*)
                   base=${1#--check=}
                   gotbase="yes"
                   shift
                   ;;
            --user)
                   user=$2
                   shift 2
                   ;;
            --user=?*)
                   user=${1#--user=}
                   shift
                   ;;
            --force)
                   force="force"
                   shift
                   ;;
            [-+][0-9]*)
                   nice="nice -n $1"
                   shift
                   ;;
            *)     echo $"$0: Usage: daemonAG [+/-nicelevel] {program}"
                   return 1;;
          esac
        done

        # Save basename.
        [ -z "$gotbase" ] && base=${1##*/}


        # make sure it doesn't core dump anywhere; while this could mask
        # problems with the daemon, it also closes some security problems
        ulimit -S -c 0 >/dev/null 2>&1
        
        # if they set NICELEVEL in /etc/sysconfig/foo, honor it
        [ -n "$NICELEVEL" ] && nice="nice -n $NICELEVEL"
        
        # Echo daemon
        [ "${BOOTUP:-}" = "verbose" -a -z "$LSB" ] && echo -n " $base"

        su -s /bin/bash - $user -c "$* &" >/dev/null 2>&1
        
        [ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"
}









RETVAL=0
prog="VenueServer"

start() {
    # Start daemons.
    echo -n $"Starting $prog: "
    daemonAG --user ag VenueServer.py  
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/agVenueServer
    return $RETVAL
}

stop() {
    # Stop daemons.
    echo -n $"Shutting down $prog: "
    killproc VenueServer.py
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/agVenueServer
    return $RETVAL
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status agVenueServer
        RETVAL=$?
        ;;
    restart|reload)
        stop
        start
        RETVAL=$?
        ;;
    condrestart)
        if [ -f /var/lock/subsys/agVenueServer ]; then
            stop
            start
            RETVAL=$?
        fi
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"
        exit 1
esac

exit $RETVAL

Reply via email to