X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fdebian%2Fwebcit.init;h=2375ac7122df840b38b05b16a5a085a39c3f49e7;hb=8f1901433ecc812a8e39cf2c41914196e61db6a2;hp=c963a30c8df8261a1cc067312264a02102714e63;hpb=eb1868500a2213dbd8b0bf6cf925d7195d68dccb;p=citadel.git diff --git a/webcit/debian/webcit.init b/webcit/debian/webcit.init index c963a30c8..2375ac712 100644 --- a/webcit/debian/webcit.init +++ b/webcit/debian/webcit.init @@ -1,6 +1,6 @@ #! /bin/sh ### BEGIN INIT INFO -# Provides: skeleton +# Provides: webcit # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Default-Start: 2 3 4 5 @@ -10,32 +10,23 @@ # placed in /etc/init.d. ### END INIT INFO -# Author: Foo Bar -# -# Please remove the "Author" lines above and replace them -# with your own name if you copy and modify this script. - -# Do NOT "set -e" +# uncomment this to create coredumps as described in +# http://www.citadel.org/doku.php/faq:mastering_your_os:gdb#how.do.i.make.my.system.produce.core-files +# ulimit -c unlimited -# PATH should only include /usr/* if it runs after the mountnfs.sh script +# Author: Wilfried Goesgens RUNDIR=/var/run/webcit PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="Citadel Groupware Webserver " -NAME=webserver +NAME=webcit DAEMON=/usr/sbin/$NAME -CTDLSVC=/usr/lib/citadel-webcit/ctdlsvc DAEMON_ARGS="" PIDFILE=$RUNDIR/$NAME.pid SCRIPTNAME=/etc/init.d/webcit SENDCOMMAND=/usr/sbin/sendcommand DEFAULT=/etc/default/webcit -LOGDIR=/var/log/webcit/ +DROP_TO_UID=`id -u nobody` - -unset LANG -unset LANGUAGE -unset LC_ALL -unset LOCALE # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 @@ -61,6 +52,17 @@ if test -f $DEFAULT; then . $DEFAULT fi +unset LANG +unset LANGUAGE +unset LC_ALL +unset LOCALE + +if test -z "$TZ"; then + if test -e /etc/timezone; then + TZ=`cat /etc/timezone` + export TZ + fi +fi # # Function that starts the daemon/service # @@ -69,18 +71,13 @@ do_start() #1: -p flag #1: port #2: ssl + #4: -f flag for apache # for ubuntu: check our volatile dirs. if test ! -d $RUNDIR; then mkdir -p $RUNDIR fi - if test ! -d $LOGDIR; then - mkdir -p $LOGDIR - fi - - - # are we disabled? if test "$1" -lt "0"; then return 0 @@ -90,15 +87,12 @@ do_start() # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started - if $CTDLSVC $PIDFILE.$1 $DAEMON \ - -p$@ -t$LOGDIR/access.${1}.log ; then + if $DAEMON -u $DROP_TO_UID -D$PIDFILE.$1 \ + -p$@ $4; then return 0 else return 2 fi - # Add code here, if necessary, that waits for the process to be ready - # to handle requests from services started subsequently which depend - # on this one. As a last resort, sleep for some time. } # @@ -106,49 +100,16 @@ do_start() # do_stop() { - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - - for i in $PIDFILE.*; do + for i in $PIDFILE.*; do if test -f $i; then kill `cat $i` rm -f $i - done - - #while test -d /proc/`cat $PIDFILE`; do - # /usr/bin/printf '.' - # /bin/sleep 1 - #done - - #start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME - #RETVAL="$?" - #[ "$RETVAL" = 2 ] && return 2 - # Wait for children to finish too if this is a daemon that forks - # and if the daemon is only ever run from this initscript. - # If the above conditions are not satisfied then add some other code - # that waits for the process to drop all resources that could be - # needed by services started subsequently. A last resort is to - # sleep for some time. - #start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON - #[ "$?" = 2 ] && return 2 - # Many daemons don't delete their pidfiles when they exit. - # rm -f $PIDFILE + fi; done } -# -# Function that sends a SIGHUP to the daemon/service -# do_reload() { - # - # If the daemon can reload its configuration without - # restarting (for example, when it is sent a SIGHUP), - # then implement that here. - # -# start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME do_stop - do_start + do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$LISTEN" "$WEBCIT_APACHEFLAG" + do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$LISTEN" "$WEBCIT_APACHEFLAG" return 0 } @@ -160,8 +121,12 @@ case "$1" in echo "Starting $DESC" "$NAME" fi - do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT - do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s + if test -n "$WEBCIT_LISTEN_IP"; then + LISTEN="-i$WEBCIT_LISTEN_IP" + fi + + do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$LISTEN" "$WEBCIT_APACHEFLAG" + do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$LISTEN" "$WEBCIT_APACHEFLAG" if test -n "$MODERN"; then case "$?" in @@ -184,20 +149,7 @@ case "$1" in esac fi ;; - #reload|force-reload) - # - # If do_reload() is not implemented then leave this commented out - # and leave 'force-reload' as an alias for 'restart'. - # - #log_daemon_msg "Reloading $DESC" "$NAME" - #do_reload - #log_end_msg $? - #;; restart|force-reload) - # - # If the "reload" option is implemented then remove the - # 'force-reload' alias - # if test -n "$MODERN"; then log_daemon_msg "Restarting $DESC" "$NAME" else @@ -209,7 +161,8 @@ case "$1" in if test -n "$MODERN"; then case "$?" in 0|1) - do_start + do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$WEBCIT_APACHEFLAG" + do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$WEBCIT_APACHEFLAG" case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running @@ -221,10 +174,12 @@ case "$1" in log_end_msg 1 ;; esac + else + do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$WEBCIT_APACHEFLAG" + do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$WEBCIT_APACHEFLAG" fi ;; *) - #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;;