Roxen.git / server / start

version» Context lines:

Roxen.git/server/start:1: + #!/bin/sh    -  + VERSION=116 + BETA=1 +  + # Can be set with '--config-dir=DIR' + DIR=../configurations/ + LOGDIR=../logs/ + FILES="default" +  + ulpc=pike + if [ -x bin/pike ] ; then ulpc=bin/pike; fi +  + rotate () { +  b=5; +  for a in 4 3 2 1 ; do mv -f $1.$a $1.$b 2> /dev/null; b=$a; done + } +  + # Change the permissions of the configuration files so that they match + # those of the user Roxen runs as when it has started, not the one Roxen + # is started as. +  + fixperms() { +  uline=`./configvar --query --config-dir=$DIR --region=Variables User` +  +  uid=`echo $uline | sed -e 's![^"]*"!!' -e 's/:.*//'` +  gid=`echo $uline | sed -e 's![^:]*:!!' -e 's/".*//'` +  +  if [ ! -z "$gid" ] ; then find $DIR $LOGDIR -print | xargs chgrp $gid; fi +  if [ ! -z "$uid" ] ; then find $DIR $LOGDIR -print | xargs chown $uid; fi +  +  find $DIR -print | xargs chmod og-rw +  find $DIR -print | xargs chmod u+rw + } +  + ####### END PREAMBLE +  +  + ## Parse all arguments. + ## GNU-style, long options only. + while [ ! c"$1" = "c" ] ; do +  case $1 in + # Used by the 'install' script +  --no-chown) +  NOCHOWN=TRUE +  ;; +  --log-dir=*) +  LOGDIR=`echo $1 | sed -e 's/--log-dir=//'` +  ;; +  --config-dir=*) +  DIR=`echo $1 | sed -e 's/--config-dir=//'` +  FILES=`echo $1 | sed -e 's/--config-dir=//' -e 's/..//' -e 's./..g' -e 's.-..g'` +  ;; +  '--version') +  if [ x$BETA = x1 ] ; then +  more='ß' +  else +  more='.' +  fi +  echo `expr $VERSION / 100`$more`expr $VERSION % 100` +  exit 0 +  ;; +  '--help'|'-?') +  echo Syntax: $0 '[--version] [--help] [--config-dir=DIR] [--pid-file=FILE] [--root=CHROOT] [--no-chown] [--log-dir=DIR]' +  echo This command will start the Roxen server. +  echo If the configuration dir is set, a different set of debuglogfiles +  echo will be used. +  exit 0 +  ;; +  *) +  pass="$pass $1" +  esac +  shift + done +  + if [ ! X$pass = "X" ] ; then set $pass ;fi +  +  + echo Starting the Roxen Challenger World Wide Web server. +  + ./mkdir -p $LOGDIR/debug/ +  + if [ "$NOCHOWN" != "TRUE" ]; then +  fixperms 2>/dev/null + fi +  + (while : ; do +  sdfile="/tmp/Roxen_Shutdown_$$" +  rm $sdfile +  if [ -f "$sdfile" ] ; then +  cat << oo + WARNING: + A shutdown file '('$sdfile')' is present, and the file cannot be + removed by this script. +  + Please remove this file, or you might be unable to shut down Roxen in + the future. +  + The file: + oo +  ls -l $sdfile +  noshutdown="yes" +  else +  noshutdown="" +  fi +  +  echo "Server restart at `date`" +  rotate $LOGDIR/debug/$FILES +  args="-DROXEN roxenloader --config-dir=$DIR --start-script-pid=$$" +  echo Executing $ulpc -m etc/master.pike $args $@ 2>$LOGDIR/debug/$FILES.1 +  $ulpc -m etc/master.pike $args $@ 2>>$LOGDIR/debug/$FILES.1 1>&2 +  if [ -z "$noshutdown" ] ; then +  if [ -f "$sdfile" ] ; then +  + # A shutdown file. This is only done if Roxen cannot kill this script + # for some reason, the most common beeing the lack of a seteuid() + # function, in which case Roxen will write this file. + # + # The contents of the file is the actual PID Roxen got when it was + # started. This could be used to verify that this was the correct + # shutdown file, but since it is extremely unlikely that two + # start-scripts get the same PID, this is not done. +  +  echo Server shutdown file detected. Shutting down +  rm "$sdfile" +  if [ -f "$sdfile" ] ; then +  echo "Failed to remove '"$sdfile"'. This could be a problem" +  exit 0 +  else +  exit 0 +  fi +  fi +  fi + done +  + echo Not Reached "(famous last words)" +  + ) < /dev/null > $LOGDIR/debug/start_$FILES.output 2>&1& +  + cat << oo + 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   Newline at end of file added.