cryptonas-branches/staging-v0.3.5/debian/cryptobox-server.init
2009-06-25 02:11:30 +00:00

118 lines
3.2 KiB
Bash

#!/bin/sh
#
# runlevel script of the cryptobox package
#
# Copyright (c) 02006, senselab
#
# see LICENSE file in this package for details
#
### BEGIN INIT INFO
# Provides: cryptobox-server
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start CryptoBox webserver
### END INIT INFO
# include some useful functions to unify our output format
. /lib/lsb/init-functions
# read the default setting file, if it exists
[ -r /etc/default/cryptobox-server ] && . /etc/default/cryptobox-server
# set default values (if not defined in /etc/default/cryptobox-server)
NO_START=${NO_START:-0}
RUNAS=${RUNAS:-cryptobox}
PORT=${PORT:-8080}
HOST=${HOST:-}
LOGFILE=/var/log/cryptobox-server/webserver.log
SERVER_OPTS=${SERVER_OPTS:-}
CONF_FILE=/etc/cryptobox-server/cryptobox.conf
DAEMON=/usr/sbin/CryptoBoxWebserver
# default install location is /usr/bin/ - debian installation requires /usr/sbin/
test -x "$DAEMON" || DAEMON=/usr/bin/CryptoBoxWebserver
PYTHON_EXEC=/usr/bin/python
PIDFILE=/var/run/cryptobox-server/webserver.pid
DESC="CryptoBox Daemon (webinterface)"
OPTIONS="-B --pidfile=$PIDFILE --config=$CONF_FILE --logfile=$LOGFILE --host=$HOST --port=$PORT --user=$RUNAS $SERVER_OPTS"
# quit if NO_START is 1 (see /etc/default/cryptobox-server)
[ "$NO_START" = "1" ] && log_daemon_msg "Not starting $DESC please edit /etc/default/cryptobox-server!" && exit 0
# check if the package is installed
test -e "$DAEMON" || exit 0
case "$1" in
start )
# create the directory of the pid file if necessary
PIDDIR=$(dirname "$PIDFILE")
if [ ! -d "$PIDDIR" ]
then mkdir -p "$PIDDIR"
# necessary: the cryptobox server needs the permission to remove the pid file
chown $RUNAS:root "$PIDDIR"
chmod 755 "$PIDDIR"
fi
# create the directory of the pid file if necessary
LOGDIR=$(dirname "$LOGFILE")
if [ ! -d "$LOGDIR" ]
then mkdir -p "$LOGDIR"
chown $RUNAS:root "$LOGDIR"
chmod 750 "$LOGDIR"
fi
log_daemon_msg "Starting $DESC"
if start-stop-daemon \
--quiet --start --user $RUNAS --pidfile "$PIDFILE" \
--startas "$PYTHON_EXEC" -- "$DAEMON" $OPTIONS
then log_end_msg 0
else log_end_msg 1
fi
;;
stop )
log_daemon_msg "Stopping $DESC"
# if there is no pid file for some reason, then we try to find the process
if test ! -e "$PIDFILE"
then if start-stop-daemon --quiet --stop --user "$RUNAS" --exec "$PYTHON_EXEC"
then log_end_msg 0
else log_end_msg 1
fi
# there is a pid file - great!
elif start-stop-daemon --quiet --stop \
--pidfile "$PIDFILE" \
--user "$RUNAS"
then test -e "$PIDFILE" && rm "$PIDFILE"
log_end_msg 0
else log_end_msg 1
fi
;;
reload | force-reload | restart )
"$0" stop
sleep 3
"$0" start
;;
status )
echo -n "$DESC "
if start-stop-daemon --stop --signal 0 --quiet \
--pidfile "$PIDFILE" --user "$RUNAS"
then echo "running"
exit 0
else if [ -e "$PIDFILE" ]
then echo "failed"
exit 1
else echo "not running"
exit 0
fi
fi
;;
* )
echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac
exit 0