b1fca0 | 1996-11-12 | Per Hedbor | | #!/bin/sh
|
fd1295 | 1997-09-07 | Henrik Grubbström (Grubba) | | #
|
7217cd | 1998-03-01 | Per Hedbor | | # $Id: start,v 1.27 1998/03/01 02:49:52 per Exp $
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
82f519 | 1997-03-02 | Per Hedbor | | VERSION=201; BETA=.a;
|
b1fca0 | 1996-11-12 | Per Hedbor | |
# Can be set with '--config-dir=DIR'
DIR=../configurations/
LOGDIR=../logs/
FILES="default"
|
3c3184 | 1998-03-01 | Per Hedbor | | # Enable threads (if available) on Solaris.
# Most other OS's have thread bugs that cause them or Roxen to crash.
if uname | grep 'SunOS' >/dev/null 2>&1; then
if uname -r | grep '5\.[5-9]' >/dev/null 2>&1; then
echo 'Solaris 2.5 or later detected. Enabling threads (if available).'
DEFINES="$DEFINES -DENABLE_THREADS"
fi
fi
|
fd1295 | 1997-09-07 | Henrik Grubbström (Grubba) | | # Roxen will create files as the initial user,
# which it expects to be able to read as the run-time user.
umask 022
|
1c4818 | 1997-03-02 | Henrik Grubbström (Grubba) | | # Pike default Master-program
|
7cb64f | 1998-01-17 | Henrik Grubbström (Grubba) | | if [ "x$PIKE_MASTER" = "x" ]; then
|
7217cd | 1998-03-01 | Per Hedbor | | if [ -f lib/master.pike ]; then
DEFINES="$DEFINES -mlib/master.pike"
|
7cb64f | 1998-01-17 | Henrik Grubbström (Grubba) | | else
# This is used with localinstall
if [ -f ../pike/src/lib/master.pike ]; then
DEFINES="$DEFINES -m../pike/src/lib/master.pike"
fi
|
4fed40 | 1997-04-16 | Henrik Grubbström (Grubba) | | fi
|
7cb64f | 1998-01-17 | Henrik Grubbström (Grubba) | | else
# This is usefull when using several different Pikes.
DEFINES="$DEFINES -m$PIKE_MASTER"
|
d0ee18 | 1997-03-01 | Henrik Grubbström (Grubba) | | fi
|
1c4818 | 1997-03-02 | Henrik Grubbström (Grubba) | |
# Extra module-path
|
d0ee18 | 1997-03-01 | Henrik Grubbström (Grubba) | | if [ -d etc/modules ]; then
|
cf1e7c | 1997-04-19 | Henrik Grubbström (Grubba) | | DEFINES="$DEFINES -Metc/modules"
|
1c4818 | 1997-03-02 | Henrik Grubbström (Grubba) | | fi
# Extra include-path
if [ -d etc/include ]; then
|
cf1e7c | 1997-04-19 | Henrik Grubbström (Grubba) | | DEFINES="$DEFINES -Ietc/include"
|
1c4818 | 1997-03-02 | Henrik Grubbström (Grubba) | | fi
# Extra include-path (2)
if [ -d base_server ]; then
|
cf1e7c | 1997-04-19 | Henrik Grubbström (Grubba) | | DEFINES="$DEFINES -Ibase_server"
|
d0ee18 | 1997-03-01 | Henrik Grubbström (Grubba) | | fi
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
7e1aee | 1997-08-10 | Henrik Grubbström (Grubba) | | # Extra kludge for HPUX
# HPUX doesn't like group 60001(nobody)
if uname | grep 'HP-UX' >/dev/null 2>&1; then
echo 'WARNING: Applying kludge for HPUX. (see base_server/privs.pike)'
DEFINES="$DEFINES -DHPUX_KLUDGE"
fi
|
d0ee18 | 1997-03-01 | Henrik Grubbström (Grubba) | | pike=pike
if [ -x bin/pike ] ; then pike=bin/pike; fi
|
7217cd | 1998-03-01 | Per Hedbor | | if [ -x bin/roxen ] ; then
pike=bin/roxen;
echo $DEFINES
fi
|
7cb64f | 1998-01-17 | Henrik Grubbström (Grubba) | | if [ -x "$PIKE" ]; then pike="$PIKE"; fi
|
b1fca0 | 1996-11-12 | Per Hedbor | |
rotate () {
b=5;
for a in 4 3 2 1 ; do mv -f $1.$a $1.$b 2> /dev/null; b=$a; done
}
|
d0ee18 | 1997-03-01 | Henrik Grubbström (Grubba) | | start_roxen() {
|
8afc81 | 1998-02-04 | Per Hedbor | | args="-DROXEN $DEBUG $DEFINES $pass base_server/roxenloader.pike --config-dir=$DIR"
|
fc2fcf | 1997-04-13 | Per Hedbor | | echo Executing $pike $args $@
$pike $args $@
|
d0ee18 | 1997-03-01 | Henrik Grubbström (Grubba) | | }
|
b1fca0 | 1996-11-12 | Per Hedbor | | ####### END PREAMBLE
## Parse all arguments.
|
82f519 | 1997-03-02 | Per Hedbor | | ## GNU-style, long options only, except for -D, simply passed on.
parse_args() {
while [ ! c"$1" = "c" ] ; do
|
b1fca0 | 1996-11-12 | Per Hedbor | | case $1 in
|
4019f8 | 1997-03-01 | Per Hedbor | | -D*)
DEFINES="$DEFINES $1"
;;
|
82f519 | 1997-03-02 | Per Hedbor | | # Used by the 'install' script
|
b1fca0 | 1996-11-12 | Per Hedbor | | --log-dir=*)
LOGDIR=`echo $1 | sed -e 's/--log-dir=//'`
;;
--config-dir=*)
DIR=`echo $1 | sed -e 's/--config-dir=//'`
|
6a8566 | 1997-04-10 | Henrik Grubbström (Grubba) | | FILES=`echo $1 | sed -e's/--config-dir=//' -e's/\.//g' -e's./..g' -e 's.-..g'`
|
b1fca0 | 1996-11-12 | Per Hedbor | | ;;
|
59f64b | 1997-01-27 | Per Hedbor | | '--debug')
debug=1
;;
|
3c3184 | 1998-03-01 | Per Hedbor | | '--threads')
DEFINES="-DENABLE_THREADS $DEFINES"
;;
'--no-threads')
DEFINES="`echo $DEFINES | sed -e 's/-DENABLE_THREADS//'`"
;;
'--profile')
DEFINES="-DPROFILE $DEFINES"
;;
'--keep-alive')
DEFINES="-DKEEP_ALIVE $DEFINES"
;;
|
a8135b | 1996-11-12 | Per Hedbor | | '--once')
once=1
;;
|
b1fca0 | 1996-11-12 | Per Hedbor | | '--version')
|
c0ca36 | 1997-05-07 | Henrik Grubbström (Grubba) | | echo Roxen Challenger 1.`expr $VERSION / 100`$BETA`expr $VERSION % 100`
|
b1fca0 | 1996-11-12 | Per Hedbor | | exit 0
;;
'--help'|'-?')
|
82f519 | 1997-03-02 | Per Hedbor | | tput 'bold' 2>/dev/null
cat << EOF
|
3c3184 | 1998-03-01 | Per Hedbor | | Syntax: $0 [--version] [--config-dir=DIR] [--log-dir=DIR] [-DDEFINE] [--threads] [--no-threads] [--profile] [--keep-alive]
This command will start the Roxen server.
|
82f519 | 1997-03-02 | Per Hedbor | | If the configuration dir is set, a different set of debuglogfiles
will be used.
The environment variable ROXEN_ARGS can be used to specify
the default arguments.
EOF
tput 'rmso' 2>/dev/null
|
b1fca0 | 1996-11-12 | Per Hedbor | | exit 0
;;
*)
pass="$pass $1"
|
5e87b4 | 1997-04-09 | Henrik Grubbström (Grubba) | | ;;
|
b1fca0 | 1996-11-12 | Per Hedbor | | esac
shift
|
82f519 | 1997-03-02 | Per Hedbor | | done
}
####### END PREAMBLE
parse_args $@
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
82f519 | 1997-03-02 | Per Hedbor | | if [ ! "X$ROXEN_ARGS" = "X" ]; then
echo $$: Using $ROXEN_ARGS from ROXEN_ARGS.
parse_args $ROXEN_ARGS
fi
|
d1ff62 | 1997-07-24 | Marcus Comstedt | | if [ ! "X$pass" = "X" ] ; then set -- $pass ;fi
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
82f519 | 1997-03-02 | Per Hedbor | | echo $$: Starting the Roxen Challenger World Wide Web server.
|
b1fca0 | 1996-11-12 | Per Hedbor | |
./mkdir -p $LOGDIR/debug/
|
59f64b | 1997-01-27 | Per Hedbor | | if [ -z "$debug" ] ; then
|
fc2fcf | 1997-04-13 | Per Hedbor | | DEBUG="-DMODULE_DEBUG";
|
59f64b | 1997-01-27 | Per Hedbor | | else
DEBUG="-DDEBUG -DMODULE_DEBUG"
fi
|
a8135b | 1996-11-12 | Per Hedbor | | if [ -z "$once" ] ; then
|
9c353a | 1997-08-23 | Henrik Grubbström (Grubba) | | (while : ; do
echo $$: "Server restart at `date`"
echo $$: "Debug log in $LOGDIR/debug/$FILES.1"
rotate $LOGDIR/debug/$FILES
|
82f519 | 1997-03-02 | Per Hedbor | |
|
9c353a | 1997-08-23 | Henrik Grubbström (Grubba) | | start_roxen 2>>$LOGDIR/debug/$FILES.1 1>&2
|
82f519 | 1997-03-02 | Per Hedbor | |
|
7cb64f | 1998-01-17 | Henrik Grubbström (Grubba) | | exitcode="$?"
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
7cb64f | 1998-01-17 | Henrik Grubbström (Grubba) | | if [ "$exitcode" -eq "0" ] ; then
# Clean shutdown.
echo $$: "Roxen shutdown."
exit 0
fi
if [ "$exitcode" -lt "0" ] ; then
# Signal death.
echo $$: "Roxen died of signal $exitcode. Restarting..."
else
# Restart. Sleep a few seconds before restarting.
echo $$: Roxen died. Restarting in 5 seconds...
sleep 5
|
b1fca0 | 1996-11-12 | Per Hedbor | | fi
|
9c353a | 1997-08-23 | Henrik Grubbström (Grubba) | | done
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
9c353a | 1997-08-23 | Henrik Grubbström (Grubba) | | echo $$: Not Reached "famous last words"
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
9c353a | 1997-08-23 | Henrik Grubbström (Grubba) | | ) < /dev/null > $LOGDIR/debug/start_$FILES.output 2>&1 &
cat << oo
|
b1fca0 | 1996-11-12 | Per Hedbor | | Using configuration from $DIR, storing the debug log in $LOGDIR/debug/$FILES.1
You can use the configuration interface in the server to get debug info.
oo
|
82f519 | 1997-03-02 | Per Hedbor | |
|
a8135b | 1996-11-12 | Per Hedbor | | else
|
82f519 | 1997-03-02 | Per Hedbor | | echo $$: "Server restart at `date`"
|
4019f8 | 1997-03-01 | Per Hedbor | | start_roxen
|
a8135b | 1996-11-12 | Per Hedbor | | fi
|
fc2fcf | 1997-04-13 | Per Hedbor | |
|