b1fca0 | 1996-11-12 | Per Hedbor | | #!/bin/sh
|
fd1295 | 1997-09-07 | Henrik Grubbström (Grubba) | | #
|
e2a69f | 2001-02-26 | Martin Stjernholm | | # $Id: start,v 1.152 2001/02/26 18:42:28 mast Exp $
|
39ed8c | 2000-08-31 | Fredrik Noring | |
### If --silent-start is given as the first argument,
### nothing will be printed to stdout by the script.
|
270fdc | 2000-12-30 | Per Hedbor | | if [ "x$1" = "x--silent-start" ] ; then
SILENT_START="y"
shift
|
39ed8c | 2000-08-31 | Fredrik Noring | | fi
|
67549e | 1999-09-05 | Per Hedbor | |
|
196c3f | 2000-11-16 | Per Hedbor | | check_owner() {
gargs=''
|
8cc180 | 2001-01-03 | Per Hedbor | | if [ -w / ] ; then
|
196c3f | 2000-11-16 | Per Hedbor | | # Shall we change uid/gid?
num=`grep --help 2>&1|grep gnu|wc -l`
num=`echo $num`
if [ x"$num" = x1 ] ; then
gargs='-a'
fi
ugid=`grep $gargs "='User'>" $DIR/Global_Variables 2>/dev/null\
| sed -e 's/.*<str>//' -e 's,</str>.*,,'`
if [ ! x$ugid = x ] ; then
dp "Doing uid change to $ugid"
oifs="$IFS";IFS=':';set $ugid;IFS="$oifs"
change_owner $1 $2 $DIR $VARDIR $LOGDIR
ok=`ls -lgd $a 2>/dev/null | grep $2 |wc -l`
ok=`echo $ok`
if [ "x$ok" = x1 ] ; then
dp ". is already readable by $2"
else
chgrp -R "$2" .
chmod -R g+w .
fi
fi
fi
}
|
a01fd9 | 2000-08-09 | Per Hedbor | | # Breaks on linux when using symlinks.
dn="`dirname $0`"
case "$dn" in
""|".")
;;
*)
|
270fdc | 2000-12-30 | Per Hedbor | | # dp is not used here since we cannot source bin/functions before we
# are in the correct directory, for quite obvious reasons...
echo " : Changing current directory to '$dn' (now `pwd`)" >&2
|
a01fd9 | 2000-08-09 | Per Hedbor | | cd $dn
|
270fdc | 2000-12-30 | Per Hedbor | | echo " : Got new directory as `pwd`" >&2
|
a01fd9 | 2000-08-09 | Per Hedbor | | ;;
esac
|
0a4af8 | 1998-11-28 | Per Hedbor | |
|
270fdc | 2000-12-30 | Per Hedbor | | . bin/functions
|
b1fca0 | 1996-11-12 | Per Hedbor | | # Can be set with '--config-dir=DIR'
DIR=../configurations/
LOGDIR=../logs/
FILES="default"
|
3e7d3b | 1998-03-20 | Per Hedbor | | program=base_server/roxenloader.pike
|
7c6da6 | 1998-11-01 | Henrik Grubbström (Grubba) | | extra_args=""
|
f29224 | 2000-03-24 | Henrik Grubbström (Grubba) | | VARDIR=../var/
LOCALDIR=../local/
# Make LOCALDIR an absolute path
|
a7b8d7 | 2000-03-24 | Henrik Grubbström (Grubba) | | if test -d $LOCALDIR/.; then
|
4bcae6 | 2000-03-24 | Henrik Grubbström (Grubba) | | LOCALDIR=`cd $LOCALDIR; pwd`
|
64209f | 2000-03-24 | Henrik Grubbström (Grubba) | | else :; fi
|
49fff3 | 2000-01-27 | Henrik Grubbström (Grubba) | |
|
423fdd | 2000-04-01 | Henrik Grubbström (Grubba) | | if test -d $VARDIR/.; then :; else
|
ff3b9a | 2000-08-09 | Per Hedbor | | dp "Creating directory $VARDIR"
|
423fdd | 2000-04-01 | Henrik Grubbström (Grubba) | | mkdir $VARDIR || exit 1
fi
|
348d6c | 2000-08-30 | Martin Stjernholm | |
|
b654ea | 2000-10-02 | Jonas Wallden | | pcdir="$VARDIR/`roxen_version`/precompiled/`uname -m | tr ' ' '_' `.`uname -r`"
|
9b1a12 | 2000-02-04 | Per Hedbor | | old_roxen_defines="$pcdir/old_roxen_defines"
./mkdir -p $pcdir
|
577d4c | 2000-04-03 | Per Hedbor | | chmod 1777 $pcdir
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | # Default verbosity level.
verbose=1
|
48eeb6 | 1999-08-06 | Peter Bortas | | # Do not default to using a relative path.
roxendir="`pwd`"
|
1f66ab | 1998-11-22 | Henrik Grubbström (Grubba) | |
|
d25ab7 | 2000-03-30 | Leif Stensson | | # Locate Pike binary.
|
270fdc | 2000-12-30 | Per Hedbor | | find_pike
|
d25ab7 | 2000-03-30 | Leif Stensson | |
|
270fdc | 2000-12-30 | Per Hedbor | | # Source environment
setup_environment
|
d25ab7 | 2000-03-30 | Leif Stensson | |
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | ####### BEGIN ARGUMENT PARSING
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
2b19eb | 1999-08-20 | Per Hedbor | |
|
491abc | 2000-08-17 | Per Hedbor | | DEFINES="$DEFINES -DRAM_CACHE"
|
2b19eb | 1999-08-20 | Per Hedbor | |
|
c90cc9 | 1999-04-22 | 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
|
ff3b9a | 2000-08-09 | Per Hedbor | | # if [ $verbose -gt 0 ] ; then
# dp "Solaris 2.5 or later detected. Using threads by default."
# fi
|
72a450 | 2000-03-10 | Martin Stjernholm | | DEFINES="$DEFINES -DENABLE_THREADS"
|
c90cc9 | 1999-04-22 | Per Hedbor | | fi
fi
|
43583b | 1999-05-25 | Henrik Grubbström (Grubba) | | gdb=no
|
c90cc9 | 1999-04-22 | Per Hedbor | |
|
08cf19 | 1999-09-06 | Per Hedbor | | remove_old_dot_o_files () {
|
af3dd8 | 2001-01-01 | Martin Nilsson | | dp "Removing old precompiled files ($1)"
|
74e390 | 2000-12-30 | Per Hedbor | | # This really cannot be done from here anymore -- pass on an option
# to roxenloader instead.
pass="$pass --remove-dumped"
|
08cf19 | 1999-09-06 | Per Hedbor | | }
|
b1fca0 | 1996-11-12 | Per Hedbor | | ## Parse all arguments.
|
82f519 | 1997-03-02 | Per Hedbor | | ## GNU-style, long options only, except for -D, simply passed on.
|
754121 | 1999-10-08 | Per Hedbor | | ARGS=""
|
4ba845 | 2001-01-31 | Per Hedbor | | setup_for_tests() {
DEFINES="-DRUN_SELF_TEST $DEFINES"
# Kill roxen mysql if it's running...
if [ -f ${VARDIR}test_config/_mysql/mysql_pid ] ; then
kill `cat ${VARDIR}test_config/_mysql/mysql_pid`
fi
rm -rf "$VARDIR""test_config"*
cp -R etc/roxen_test/test_config $VARDIR
cp etc/roxen_test/filesystem/test_rxml_package rxml_packages/test_rxml_package
DIR="$VARDIR""test_config"
once=1
remove_dumped=1
}
|
82f519 | 1997-03-02 | Per Hedbor | | parse_args() {
while [ ! c"$1" = "c" ] ; do
|
00b8b0 | 2001-02-02 | Fredrik Noring | | case "$1" in
|
4019f8 | 1997-03-01 | Per Hedbor | | -D*)
DEFINES="$DEFINES $1"
;;
|
08cf19 | 1999-09-06 | Per Hedbor | | -l*)
|
0272d3 | 1999-11-03 | Henrik Grubbström (Grubba) | | ARGS="$ARGS $1"
|
08cf19 | 1999-09-06 | Per Hedbor | | ;;
|
a41305 | 1998-08-10 | Per Hedbor | | --truss)
pike="truss $pike"
;;
|
df5636 | 1999-08-30 | Per Hedbor | | --truss-c)
pike="truss -c $pike"
;;
|
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 | | ;;
|
7c6da6 | 1998-11-01 | Henrik Grubbström (Grubba) | | --pid-file=*)
extra_args="$extra_args $1"
;;
|
cdd991 | 2000-10-30 | Per Hedbor | | '--with-security'|'--enable-security')
DEFINES="$DEFINES -DSECURITY"
;;
|
8a788c | 1998-07-22 | David Hedbor | | '--debug'|'--with-debug'|'--enable-debug')
|
59f64b | 1997-01-27 | Per Hedbor | | debug=1
;;
|
8edfa3 | 1998-08-20 | Per Hedbor | | '--without-debug')
debug=-1
;;
|
8a788c | 1998-07-22 | David Hedbor | | '--fd-debug'|'--with-fd-debug'|'--enable-fd-debug')
|
cc4fdd | 1998-03-26 | Per Hedbor | | DEFINES="-DFD_DEBUG $DEFINES"
;;
|
491abc | 2000-08-17 | Per Hedbor | | '--without-ram-cache'|'--disable-ram-cache')
DEFINES="`echo $DEFINES | sed -e 's/-DRAM_CACHE//g'`"
;;
'--without-ram-cache-stat'|'--disable-ram-cache-stat')
DEFINES="`-DRAM_CACHE_ASUME_STATIC_CONTENT`"
;;
|
67549e | 1999-09-05 | Per Hedbor | | '--dump-debug'|'--with-dump-debug'|'--enable-dump-debug')
DEFINES="-DDUMP_DEBUG $DEFINES"
;;
|
8a788c | 1998-07-22 | David Hedbor | | '--threads'|'--with-threads'|'--enable-threads')
|
3c3184 | 1998-03-01 | Per Hedbor | | DEFINES="-DENABLE_THREADS $DEFINES"
;;
|
8a788c | 1998-07-22 | David Hedbor | | '--no-threads'|'--without-threads'|'--disable-threads')
|
72a450 | 2000-03-10 | Martin Stjernholm | | DEFINES="`echo $DEFINES | sed -e 's/-DENABLE_THREADS//g'`"
|
3c3184 | 1998-03-01 | Per Hedbor | | ;;
|
8edfa3 | 1998-08-20 | Per Hedbor | | '--with-profile'|'--profile')
|
3c3184 | 1998-03-01 | Per Hedbor | | DEFINES="-DPROFILE $DEFINES"
;;
|
8edfa3 | 1998-08-20 | Per Hedbor | | '--with-file-profile'|'--file-profile')
DEFINES="-DPROFILE -DFILE_PROFILE $DEFINES"
;;
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | '--quiet'|'-q')
verbose=0
;;
'--verbose'|'-v')
verbose=2
debug=1
;;
|
221398 | 1999-09-05 | Per Hedbor | | '--remove-dumped')
|
77868d | 2000-03-13 | Per Hedbor | | remove_dumped=1;
|
221398 | 1999-09-05 | Per Hedbor | | ;;
|
a8135b | 1996-11-12 | Per Hedbor | | '--once')
once=1
;;
|
cbced9 | 1998-11-06 | Marcus Comstedt | | # Misspelling --once might give undesirable results, so let's accept
# some "creative" spellings... :-)
'--onve'|'--onec'|'--onev')
once=1
;;
|
c6420b | 1998-06-02 | Henrik Grubbström (Grubba) | | '--gdb')
gdb=gdb
once=1
;;
|
3e7d3b | 1998-03-20 | Per Hedbor | | '--program')
program="$2"
|
0a4af8 | 1998-11-28 | Per Hedbor | | once=1
|
409e9b | 2001-02-01 | Per Hedbor | | passhelp=1
|
3e7d3b | 1998-03-20 | Per Hedbor | | shift
;;
|
b796b5 | 1998-11-18 | Per Hedbor | | '--cd')
cd_to="$2"
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | # Use the absolute path...
roxendir="`pwd`"
|
0a4af8 | 1998-11-28 | Per Hedbor | | once=1
|
b796b5 | 1998-11-18 | Per Hedbor | | shift
;;
|
e2a69f | 2001-02-26 | Martin Stjernholm | | --debug-without=*|-r*|-d*|-t*|-l*|-w*|-a*)
|
754121 | 1999-10-08 | Per Hedbor | | # Argument passed along to Pike.
ARGS="$ARGS $1"
;;
-D*|-M*|-I*|-P*)
|
61c0ca | 1998-11-28 | Henrik Grubbström (Grubba) | | # Argument passed along to Pike.
DEFINES="$DEFINES $1"
;;
|
b1fca0 | 1996-11-12 | Per Hedbor | | '--version')
|
409e9b | 2001-02-01 | Per Hedbor | | if [ "x$passhelp" = "x1" ] ; then
pass="$pass --version"
else
|
6a5775 | 1999-08-06 | Henrik Grubbström (Grubba) | | if [ -f base_server/roxen.pike ]; then
|
fd8720 | 2000-09-01 | Martin Nilsson | | echo "Roxen WebServer `roxen_version`"
|
6a5775 | 1999-08-06 | Henrik Grubbström (Grubba) | | exit 0
else
echo 'base_server/roxen.pike not found!'
exit 1
fi
|
409e9b | 2001-02-01 | Per Hedbor | | fi
|
b1fca0 | 1996-11-12 | Per Hedbor | | ;;
|
a0129c | 2000-11-11 | Martin Nilsson | | '--self-test')
|
4ba845 | 2001-01-31 | Per Hedbor | | setup_for_tests
;;
'--self-test-quiet')
debug=-1
SILENT_START=y
do_pipe="| grep ' |'"
setup_for_tests
;;
'--self-test-verbose')
pass="$pass --tests-verbose=1"
setup_for_tests
|
a0129c | 2000-11-11 | Martin Nilsson | | ;;
|
b1fca0 | 1996-11-12 | Per Hedbor | | '--help'|'-?')
|
409e9b | 2001-02-01 | Per Hedbor | | if [ "x$passhelp" = "x1" ] ; then
pass="$pass --help"
else
|
ac54c7 | 1999-09-10 | Martin Stjernholm | | sed -e "s/\\.B/`tput 'bold' 2>/dev/null`/g" -e "s/B\\./`tput 'sgr0' 2>/dev/null`/g" << EOF
|
fd8720 | 2000-09-01 | Martin Nilsson | | .BThis command will start the Roxen WebServerB..
|
8edfa3 | 1998-08-20 | Per Hedbor | |
The environment variable .BROXEN_ARGSB. can be used to specify
|
82f519 | 1997-03-02 | Per Hedbor | | the default arguments.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
.BArguments:B.
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--versionB.: Output version information.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
aa5b94 | 1998-11-28 | Henrik Grubbström (Grubba) | | .B--help -?B.: This information.
|
221398 | 1999-09-05 | Per Hedbor | | .B--remove-dumpedB.: Remove all dumped code, thus forcing
a recompile.
|
aa5b94 | 1998-11-28 | Henrik Grubbström (Grubba) | | .B--verbose -vB.: Enable more verbose messages.
.B--quiet -qB.: Disable most of the messages.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--log-dir=DIRB.: Set the log directory. Defaults to .B../logsB..
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
aa5b94 | 1998-11-28 | Henrik Grubbström (Grubba) | | .B--config-dir=DIRB.: Use an alternate configuration directory.
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | Defaults to .B../configurationB..
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
39ed8c | 2000-08-31 | Fredrik Noring | | .B--silent-startB.: Inhibits output to stdout. If used,
this argument must be the first one.
|
491abc | 2000-08-17 | Per Hedbor | | .B--without-ram-cacheB.: Do not use an in-RAM cache to speed
things up. Saves RAM at the cost of speed.
.B--without-ram-cache-statB.: Disable the stat that is usualy done
for files in the ram cache to ensure that
they are not changed before they are sent.
Improves performance at the cost of constant
aggrevation if the site is edited. Useful for
truly static sites.
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--with-threadsB.: If threads are available, use them.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
e6a171 | 2000-02-02 | Per Hedbor | | .B--without-threadsB.: Even if threads are enabled by default,
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | disable them.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--with-profileB.: Store runtime profiling information on
a directory basis. This information is
not saved on permanent storage, it is only
available until the next server restart
This will enable a new 'action' in the
|
a6ef1f | 2000-03-28 | Johan Sundström | | administration interface
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
e6a171 | 2000-02-02 | Per Hedbor | | .B--with-file-profileB.: Like .B--with-profileB., but save information
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | for each and every file.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
a0129c | 2000-11-11 | Martin Nilsson | | .B--self-testB.: Runs a testsuite.
|
4ba845 | 2001-01-31 | Per Hedbor | | .B--self-test-verboseB.: Runs a testsuite, report all tests.
.B--self-test-quiet.: Runs a testsuite, only report errors.
|
a0129c | 2000-11-11 | Martin Nilsson | |
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--onceB.: Run the server only once, in the foreground.
This is very useful when debugging.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--gdbB.: Run the server in gdb. Implies .B--onceB..
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--programB.: Start a different program with the roxen
|
e6a171 | 2000-02-02 | Per Hedbor | | Pike. As an example,
.B./start --program bin/install.pikeB. will
start the installation program normally
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | started with .B./installB.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--with-debugB.: Enable debug
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--without-debugB.: Disable all debug
|
e6a171 | 2000-02-02 | Per Hedbor | |
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--with-fd-debugB.: Enable FD debug.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
67549e | 1999-09-05 | Per Hedbor | | .B--with-dump-debugB.: Enable dump debug.
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--trussB.: (Solaris only). Run the server under
|
e6a171 | 2000-02-02 | Per Hedbor | | truss, shows .BallB. system calls. This is
extremely noisy, and is not intented for
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | anything but debug.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
67549e | 1999-09-05 | Per Hedbor | | .B--truss-cB.: (Solaris only). Run the server under
truss -c, shows times for all system calls
|
e6a171 | 2000-02-02 | Per Hedbor | | on exit. This is not intented for anything
|
67549e | 1999-09-05 | Per Hedbor | | but debug. Slows the server down.
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B--pid-file=<file>B.: Store the roxen and startscript pids in this
file. Defaults to .B/tmp/roxen_$UIDB.
|
e6a171 | 2000-02-02 | Per Hedbor | |
|
8edfa3 | 1998-08-20 | Per Hedbor | | .BArguments passed to pike:B.
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B-DDEFINEB.: Define the symbol .BDEFINEB..
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
61c0ca | 1998-11-28 | Henrik Grubbström (Grubba) | | .B-d<level>B.: Set the runtime Pike debug to level.
|
e6a171 | 2000-02-02 | Per Hedbor | | This only works if Pike is compiled
|
e2a69f | 2001-02-26 | Martin Stjernholm | | with debug (i.e. with --rtl-debug to
configure).
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
bcdd9d | 1999-12-13 | Per Hedbor | | .B-rtB.: Enable runtime typechecking.
Things will run more slowly, but it is very
useful while developing code.
Enabled when starting roxen with --debug
.B-rTB.: Enable strict types.
|
e6a171 | 2000-02-02 | Per Hedbor | | Same as adding #pragma strict-types
|
bcdd9d | 1999-12-13 | Per Hedbor | | to all files.
This enables more strict
type-checking, things that are
normally permitted (such as calling
a mixed value, or assigning a typed
object variable with an untyped
object) will generate warnings.
Useful for module and roxen core
developers, but not so useful for
the occasional pike-script-writer.
Enabled when starting roxen with --debug
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .B-s<size>B.: Set the stack size.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
61c0ca | 1998-11-28 | Henrik Grubbström (Grubba) | | .B-M<path>B.: Add the path to the Pike module path.
.B-I<path>B.: Add the path to the Pike include path.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
61c0ca | 1998-11-28 | Henrik Grubbström (Grubba) | | .B-P<path>B.: Add the path to the Pike program path.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
9e8fac | 2000-02-08 | Martin Stjernholm | | .B-dtB.: Turn off tail recursion optimization.
|
adae24 | 1998-09-18 | Per Hedbor | |
|
61c0ca | 1998-11-28 | Henrik Grubbström (Grubba) | | .B-tB.: Turn on Pike level tracing.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
e6a171 | 2000-02-02 | Per Hedbor | | .B-t<level>B.: Turn on more Pike tracing. This only
|
e2a69f | 2001-02-26 | Martin Stjernholm | | works if Pike is compiled with debug
(i.e. with --rtl-debug to configure).
.B-a<level>B.: Turn on Pike assembler debug. This only
works if Pike is compiled with debug
(i.e. with --rtl-debug to configure).
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
0272d3 | 1999-11-03 | Henrik Grubbström (Grubba) | | .B-wB.: Turn on Pike warnings.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
.BEnvironment variables:B.
|
e6a171 | 2000-02-02 | Per Hedbor | | .BLANGB.: Used to determine the default locale
|
a6ef1f | 2000-03-28 | Johan Sundström | | in the administration interface and logs.
|
c083c2 | 1998-09-19 | Henrik Grubbström (Grubba) | | .BROXEN_CONFIGDIRB.: Same as .B--config-dir=... B.
.BROXEN_PID_FILEB.: Same as .B--pid-file=... B.
.BROXEN_LANGB.: The default language for all language
|
7de518 | 1998-11-22 | Per Hedbor | | related tags. Defaults to 'en' for english.
|
8edfa3 | 1998-08-20 | Per Hedbor | |
|
82f519 | 1997-03-02 | Per Hedbor | | EOF
tput 'rmso' 2>/dev/null
|
b1fca0 | 1996-11-12 | Per Hedbor | | exit 0
|
409e9b | 2001-02-01 | Per Hedbor | | fi
|
b1fca0 | 1996-11-12 | Per Hedbor | | ;;
*)
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
}
|
ff3b9a | 2000-08-09 | Per Hedbor | | if [ ! "X$ROXEN_ARGS" = "X" ]; then
parse_args $ROXEN_ARGS
fi
|
82f519 | 1997-03-02 | Per Hedbor | | parse_args $@
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
ff3b9a | 2000-08-09 | Per Hedbor | | # The work has already been done above, but the debug printout is better
# to have _after_ parse_args (consider --help and --version)
|
82f519 | 1997-03-02 | Per Hedbor | | if [ ! "X$ROXEN_ARGS" = "X" ]; then
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | if [ $verbose -gt 0 ]; then
|
ff3b9a | 2000-08-09 | Per Hedbor | | dp "Used $ROXEN_ARGS from ROXEN_ARGS."
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | else :; fi
|
82f519 | 1997-03-02 | Per Hedbor | | fi
|
d1ff62 | 1997-07-24 | Marcus Comstedt | | if [ ! "X$pass" = "X" ] ; then set -- $pass ;fi
|
b1fca0 | 1996-11-12 | Per Hedbor | |
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | ####### END ARGUMENT PARSING
####### BEGIN PIKE OPTIONS
|
fd8720 | 2000-09-01 | Martin Nilsson | | # Roxen WebServer will create files as the initial user,
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | # which it expects to be able to read as the run-time user.
umask 022
|
258767 | 1999-04-24 | Martin Stjernholm | | if [ "x$PIKE_NO_DEFAULT_PATHS" = "x" ]; then
# Pike default Master-program
if [ "x$PIKE_MASTER" = "x" ]; then
if [ -f lib/master.pike ]; then
|
348d6c | 2000-08-30 | Martin Stjernholm | | DEFINES="$DEFINES -m$roxendir/lib/master.pike"
|
258767 | 1999-04-24 | Martin Stjernholm | | elif [ -f lib/pike/master.pike ]; then
|
348d6c | 2000-08-30 | Martin Stjernholm | | DEFINES="$DEFINES -m$roxendir/lib/pike/master.pike"
|
258767 | 1999-04-24 | Martin Stjernholm | | fi
else
# This is useful when using several different Pikes.
# Specify include and module paths with
# PIKE_INCLUDE_PATH and PIKE_MODULE_PATH
# they are handled automatically by the master,
# so no need to do it here.
DEFINES="$DEFINES -m$PIKE_MASTER"
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | fi
fi
# Extra module-path
|
8cc180 | 2001-01-03 | Per Hedbor | | #if [ -d etc/modules ]; then
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | DEFINES="$DEFINES -M$roxendir/etc/modules"
|
8cc180 | 2001-01-03 | Per Hedbor | | #fi
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | |
# Extra include-path
|
8cc180 | 2001-01-03 | Per Hedbor | | #if [ -d etc/include ]; then
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | DEFINES="$DEFINES -I$roxendir/etc/include"
|
8cc180 | 2001-01-03 | Per Hedbor | | #fi
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | |
|
f29224 | 2000-03-24 | Henrik Grubbström (Grubba) | | if [ -d $LOCALDIR/include ]; then
DEFINES="$DEFINES -I$LOCALDIR/include"
|
77868d | 2000-03-13 | Per Hedbor | | fi
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | # Extra include-path (2)
|
8cc180 | 2001-01-03 | Per Hedbor | | #if [ -d base_server ]; then
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | DEFINES="$DEFINES -I$roxendir/base_server"
|
8cc180 | 2001-01-03 | Per Hedbor | | #fi
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | |
|
f29224 | 2000-03-24 | Henrik Grubbström (Grubba) | | if [ -d $LOCALDIR/base_server ]; then
DEFINES="$DEFINES -I$LOCALDIR/base_server -P$LOCALDIR/base_server"
|
77868d | 2000-03-13 | Per Hedbor | | fi
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | # Extra program-path
DEFINES="$DEFINES -P`pwd`"
# Support for adding local pike-modules
|
f29224 | 2000-03-24 | Henrik Grubbström (Grubba) | | if [ -d $LOCALDIR/etc/. ]; then
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | # Extra module-path
|
f29224 | 2000-03-24 | Henrik Grubbström (Grubba) | | if [ -d $LOCALDIR/etc/modules/. ]; then
DEFINES="$DEFINES -M$LOCALDIR/etc/modules"
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | fi
# Extra include-path
|
f29224 | 2000-03-24 | Henrik Grubbström (Grubba) | | if [ -d $LOCALDIR/etc/include ]; then
DEFINES="$DEFINES -I$LOCALDIR/etc/include"
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | fi
# Extra program-path
|
f29224 | 2000-03-24 | Henrik Grubbström (Grubba) | | DEFINES="$DEFINES -P$LOCALDIR/etc"
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | fi
# Extra kludge for HPUX
# HPUX doesn't like group 60001(nobody)
if uname | grep 'HP-UX' >/dev/null 2>&1; then
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | if [ $verbose -gt 0 ]; then
|
8cc180 | 2001-01-03 | Per Hedbor | | dp "WARNING: Applying kludge for HPUX. (see base_server/roxen.pike)"
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | else :; fi
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | DEFINES="$DEFINES -DHPUX_KLUDGE"
fi
|
0272d3 | 1999-11-03 | Henrik Grubbström (Grubba) | |
case "x$debug" in
"x")
|
d12de0 | 1999-12-21 | Per Hedbor | | DEBUG="-DMODULE_DEBUG "
|
bcdd9d | 1999-12-13 | Per Hedbor | | ARGS="$ARGS -w"
|
0272d3 | 1999-11-03 | Henrik Grubbström (Grubba) | | ;;
"x-1")
DEBUG=""
;;
"x1")
|
9e8fac | 2000-02-08 | Martin Stjernholm | | DEBUG="-DDEBUG -DMODULE_DEBUG"
|
0272d3 | 1999-11-03 | Henrik Grubbström (Grubba) | | ARGS="$ARGS -w"
;;
esac
DEFINES="$DEBUG $DEFINES"
|
b1e9fe | 1998-11-28 | Henrik Grubbström (Grubba) | | ####### END PIKE OPTIONS
|
38e43b | 1998-09-12 | Henrik Grubbström (Grubba) | |
#
# Some useful functions
#
|
0259c4 | 2000-08-31 | Martin Stjernholm | | signal_exit() {
dp "Start script terminated."
if [ "x$ROXEN_PID" != "x" ]; then
kill $ROXEN_PID 2>/dev/null
while kill -0 $ROXEN_PID 2>/dev/null; do
sleep 1
done
fi
|
fd8720 | 2000-09-01 | Martin Nilsson | | dp "Roxen WebServer shutdown."
|
0259c4 | 2000-08-31 | Martin Stjernholm | | exit 0
}
|
e8a901 | 2001-01-31 | Per Hedbor | | exit_fail() {
exitcode=1
}
|
38e43b | 1998-09-12 | Henrik Grubbström (Grubba) | | start_roxen() {
|
196c3f | 2000-11-16 | Per Hedbor | | check_owner
|
270fdc | 2000-12-30 | Per Hedbor | | raise_limit
|
001f83 | 2000-11-20 | Per Hedbor | |
|
77868d | 2000-03-13 | Per Hedbor | | if [ x$remove_dumped = x1 ] ; then
remove_old_dot_o_files "user request"
fi
|
e6a171 | 2000-02-02 | Per Hedbor | | if [ "x$DIR" != "x../configurations/" ] ; then
|
754121 | 1999-10-08 | Per Hedbor | | args="$DEFINES $ARGS $program --config-dir=$DIR $pass"
|
b796b5 | 1998-11-18 | Per Hedbor | | else
|
754121 | 1999-10-08 | Per Hedbor | | args="$DEFINES $ARGS $program $pass"
|
b796b5 | 1998-11-18 | Per Hedbor | | fi
|
e6a171 | 2000-02-02 | Per Hedbor | | if [ x$cd_to != x ] ; then
|
b796b5 | 1998-11-18 | Per Hedbor | | cd $cd_to
fi
|
38e43b | 1998-09-12 | Henrik Grubbström (Grubba) | | if [ "x$gdb" = "xno" ]; then
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | if [ $verbose -gt 0 ]; then
|
0dbd69 | 2000-02-17 | Martin Stjernholm | | if [ $verbose -gt 1 -o -z "$once" ] ; then
|
ff3b9a | 2000-08-09 | Per Hedbor | | dp "Executing $pike $args $@"|sed -e "s!`pwd`!.!g"
|
924570 | 2000-02-16 | Per Hedbor | | else
|
ad8dc1 | 2000-09-01 | Per Hedbor | | dp "Using the '$pike' pike binary"|sed -e "s!`pwd`!.!g"
|
924570 | 2000-02-16 | Per Hedbor | | fi
fi
|
0259c4 | 2000-08-31 | Martin Stjernholm | |
trap signal_exit 2 15
trap "" 1
if [ "x$once" = "x" ]; then
|
263cf7 | 2001-02-02 | Per Hedbor | | $pike $args "$@" 2>>$LOGDIR/debug/$FILES.1 1>&2 &
|
0259c4 | 2000-08-31 | Martin Stjernholm | | ROXEN_PID=$!
|
fd8720 | 2000-09-01 | Martin Nilsson | | dp "Roxen WebServer server pid $ROXEN_PID."
|
0259c4 | 2000-08-31 | Martin Stjernholm | | wait $! 2>/dev/null 1>&2
exitcode="$?"
|
263cf7 | 2001-02-02 | Per Hedbor | | echo "Exitcode = $exitcode"
|
0259c4 | 2000-08-31 | Martin Stjernholm | | ROXEN_PID=""
else
|
4ba845 | 2001-01-31 | Per Hedbor | | if [ "x$do_pipe" = "x" ] ; then
$pike $args "$@" 2>&1
|
263cf7 | 2001-02-02 | Per Hedbor | | exitcode="$?"
|
4ba845 | 2001-01-31 | Per Hedbor | | else
|
e8a901 | 2001-01-31 | Per Hedbor | | trap exit_fail 1
eval "($pike $args \"$@\" || kill -1 $$) 2>&1 $do_pipe"
exit $exitcode
|
4ba845 | 2001-01-31 | Per Hedbor | | fi
|
0259c4 | 2000-08-31 | Martin Stjernholm | | fi
|
38e43b | 1998-09-12 | Henrik Grubbström (Grubba) | | else
echo >.gdbinit handle SIGPIPE nostop noprint pass
echo >>.gdbinit handle SIGUSR1 nostop noprint pass
echo >>.gdbinit handle SIGUSR2 nostop noprint pass
|
72a450 | 2000-03-10 | Martin Stjernholm | | echo >>.gdbinit handle SIGLWP nostop noprint pass
|
348d6c | 2000-08-30 | Martin Stjernholm | | firstline=`head -1 "$pike" 2>/dev/null`
if expr "x$firstline" : 'x#! */.*' >/dev/null; then
|
0259c4 | 2000-08-31 | Martin Stjernholm | | # Looks like a script. gdb will not grok it, so we try passing
|
348d6c | 2000-08-30 | Martin Stjernholm | | # --gdb to it instead (which works in the special case of the
|
0259c4 | 2000-08-31 | Martin Stjernholm | | # bin/pike script that is built by the top level Makefile in the
|
348d6c | 2000-08-30 | Martin Stjernholm | | # Pike source tree).
dp "Executing $pike --gdb $args $@"
$pike --gdb $args "$@"
else
dp "Executing gdb $pike $args $@"
echo >>.gdbinit run $args $@
gdb $pike
fi
|
38e43b | 1998-09-12 | Henrik Grubbström (Grubba) | | rm .gdbinit
fi
}
|
0259c4 | 2000-08-31 | Martin Stjernholm | |
|
38e43b | 1998-09-12 | Henrik Grubbström (Grubba) | | #
# Now do the stuff
#
|
688d03 | 2000-09-25 | Per Hedbor | | PIKEVERSION="`$pike --version 2>&1|head -1`"
LS="`ls -lL $pike 2>/dev/null`"
|
dec2ed | 2001-01-19 | Per Hedbor | | LS="$LS `find etc/modules -ls 2>/dev/null`"
LS="$LS `find base_server -ls 2>/dev/null`"
|
221398 | 1999-09-05 | Per Hedbor | |
|
688d03 | 2000-09-25 | Per Hedbor | | VERSION_DATA="$PIKEVERSION $DEFINES $LS"
|
221398 | 1999-09-05 | Per Hedbor | |
|
e6a171 | 2000-02-02 | Per Hedbor | | if [ "$program" = "base_server/roxenloader.pike" ] ; then
|
688d03 | 2000-09-25 | Per Hedbor | | if [ "`cat $old_roxen_defines 2>/dev/null`" != "$VERSION_DATA" ] ; then
|
7aad02 | 2000-02-14 | Martin Stjernholm | | remove_old_dot_o_files "defines or pike version changed"
|
754121 | 1999-10-08 | Per Hedbor | | fi
|
688d03 | 2000-09-25 | Per Hedbor | | echo "$VERSION_DATA" > $old_roxen_defines
|
754121 | 1999-10-08 | Per Hedbor | | fi
|
221398 | 1999-09-05 | Per Hedbor | |
|
a8135b | 1996-11-12 | Per Hedbor | | if [ -z "$once" ] ; then
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | if [ $verbose -gt 0 ]; then
|
fd8720 | 2000-09-01 | Martin Nilsson | | dp "Starting the Roxen WebServer."
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | else :; fi
./mkdir -p $LOGDIR/debug/
|
0a4af8 | 1998-11-28 | Per Hedbor | |
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | if [ $verbose -gt 0 ]; then
|
0259c4 | 2000-08-31 | Martin Stjernholm | | dp "Using configuration from $DIR, storing the debug log in $LOGDIR/debug/$FILES.1."
dp "You can use the administration interface in the server to get debug info."
|
14fd21 | 1998-11-28 | Henrik Grubbström (Grubba) | | else :; fi
|
13c548 | 1998-07-02 | Henrik Grubbström (Grubba) | |
|
0259c4 | 2000-08-31 | Martin Stjernholm | | if (
(
# Do not use the prefix since it contains the pid of the script
# we were forked from and not the one of this fork, which is
# confusing. Can't rebuild $pre from $$ here, since some sh's
# seems to cache it, causing it to be wrong here.
pre=""
exec 3>&-
while : ; do
if test -d "$LOGDIR/debug/."; then :; else
# Avoid infinite loop if the debug directory is deleted.
# Thanks to Emils Klotins <emils@dot.lv> for reporting it.
if ./mkdir -p "$LOGDIR/debug/"; then :; else
dp "Failed to create log directory $LOGDIR/debug/."
exit 1
fi
|
12017a | 2000-06-05 | Emils Klotins | | fi
|
49fff3 | 2000-01-27 | Henrik Grubbström (Grubba) | |
|
0259c4 | 2000-08-31 | Martin Stjernholm | | dp "Server start at `date`"
dp "Debug log in $LOGDIR/debug/$FILES.1"
rotate $LOGDIR/debug/$FILES
start_roxen $extra_args
|
49fff3 | 2000-01-27 | Henrik Grubbström (Grubba) | |
|
0259c4 | 2000-08-31 | Martin Stjernholm | | if [ "$exitcode" -eq "0" ] ; then
# Clean shutdown.
|
fd8720 | 2000-09-01 | Martin Nilsson | | dp "Roxen WebServer shutdown."
|
0259c4 | 2000-08-31 | Martin Stjernholm | | exit 0
fi
if [ "$exitcode" -lt "0" ] ; then
# Signal death.
|
fd8720 | 2000-09-01 | Martin Nilsson | | dp "Roxen WebServer died of signal $exitcode. Restarting..."
|
0259c4 | 2000-08-31 | Martin Stjernholm | | else
|
00b8b0 | 2001-02-02 | Fredrik Noring | | case "$exitcode" in
100)
dp "Changing Roxen WebServer version. Restarting."
cd .. && exec ./start "$@"
dp 'Failed to spawn start script. -- Permission problem?'
exit 1
;;
*)
dp "Roxen WebServer down. Restarting."
;;
esac
|
0259c4 | 2000-08-31 | Martin Stjernholm | | fi
done
) &
dp "Forked start script, pid $!." >&3
) 3>&1 </dev/null >$LOGDIR/debug/start_$FILES.output 2>&1; then
:
|
49fff3 | 2000-01-27 | Henrik Grubbström (Grubba) | | else
|
ff3b9a | 2000-08-09 | Per Hedbor | | dp 'Failed to spawn subshell. -- Permission problem?'
|
49fff3 | 2000-01-27 | Henrik Grubbström (Grubba) | | exit 1
fi
|
0259c4 | 2000-08-31 | Martin Stjernholm | |
# Try to get rid of some fd's.
# Some /bin/sh's have problems detaching otherwise.
exec >/dev/null
exec </dev/null
|
a8135b | 1996-11-12 | Per Hedbor | | else
|
0259c4 | 2000-08-31 | Martin Stjernholm | | start_roxen $extra_args
|
a8135b | 1996-11-12 | Per Hedbor | | fi
|