Paul Schneider 10 years ago
parent b5c5d5aacf
commit b45d59466f
1 changed files with 65 additions and 43 deletions

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: kestrel # Provides: kestrel
# Required-Start: $local_fs $network $named $time $syslog # Required-Start: $local_fs $network $named $time $syslog
@ -9,76 +9,96 @@
### END INIT INFO ### END INIT INFO
# Author: Ivan Derevianko aka druss <drussilla7@gmail.com> # Author: Ivan Derevianko aka druss <drussilla7@gmail.com>
# Modified by: Paul Schneider <redienhcs.luap@gmail.com>
# /root/.dnx/runtimes/dnx-mono.1.0.0-rc1-update1/bin/Microsoft.Dnx.Host.Mono.dll --project approot/src/YavscWeb --configuration Release bocasta </dev/null
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=bocasta
DESC=web
. /lib/init/vars.sh . /lib/init/vars.sh
. /lib/lsb/init-functions . /lib/lsb/init-functions
WWW_USER=paul PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DNXRUNTIME=/root/.dnx/runtimes/dnx-mono.1.0.0-rc1-update1/bin/Microsoft.Dnx.Host.Mono.dll CONFIGS="/etc/kestrel/*.webenv"
PROJECT=approot/src/YavscWeb DNX_USER_HOME=/srv/www/dnx
CONFIGURATION=Release DNXRUNTIMEVERSION=$(cat /srv/www/dnx/alias/default.alias)
ROOT=/srv/www/yavscpre
DAEMON="$DNXRUNTIME -- --project $PROJECT --configuration $CONFIGURATION $NAME"
PIDFILE=$ROOT/kestrel.pid
export LOGFILE=$ROOT/kestrel.log
export MONO_OPTIONS="--server"
export ASPNET_ENV="Production"
# fix issue with DNX exception in case of two env vars with the same name but different case # fix issue with DNX exception in case of two env vars with the same name but different case
TMP_SAVE_runlevel_VAR=$runlevel TMP_SAVE_runlevel_VAR=$runlevel
unset runlevel unset runlevel
running() { running() {
if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE); then if [ -f $PIDFILE ]
return 0 then
DNXPID=$(cat $PIDFILE)
if kill -0 $DNXPID 2>/dev/null
then
return 0
fi
fi fi
return 1 return 1
} }
setdnxenv() {
env=$1
. $env
# reset all except the name to default values
export ASPNET_ENV=$NAME
WWW_USER=www-data
DNXRUNTIME=${DNX_USER_HOME}/runtimes/${DNXRUNTIMEVERSION}/bin/Microsoft.Dnx.Host.Mono.dll
PROJECT=approot/Web
CONFIGURATION=Release
ROOT=/srv/www/yavsc
DESC="$NAME"
PIDFILE=/var/run/kestrel-${NAME}.pid
export LOGFILE="${ROOT}/kestrel-${NAME}.log"
export MONO_OPTIONS="--server"
# reset to specified values
. $env
}
status() { status() {
for env in $CONFIGS
do
setdnxenv "$env"
if running; if running;
then then
PID=$(cat $PIDFILE) echo "Service running $DESC (pid: $DNXPID)"
echo "Service running (Pid:$PID) $DESC" "$NAME"
else else
echo "Service stopped $DESC" "$NAME" echo "Service stopped ($DESC)"
fi fi
done
} }
start() { start() {
for env in $CONFIGS
do
setdnxenv "$env"
if running; then
echo "Service already running $DESC" "$NAME"
log_end_msg 1
else
log_daemon_msg "Starting service $DESC" "$ASPNET_ENV"
start-stop-daemon -SbmCv -u $WWW_USER -p $PIDFILE -d $ROOT -x $DNXRUNTIME -- --project $PROJECT --configuration $CONFIGURATION $NAME >$LOGFILE
log_end_msg 0
fi
done
if running; then
echo "Service already running $DESC" "$NAME"
return 1
fi
log_daemon_msg "Starting service $DESC" "$NAME"
start-stop-daemon -SbmCv -u www-data -p $PIDFILE -d $ROOT -x $DAEMON >$LOGFILE
log_end_msg 0
} }
stop() { stop() {
if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE") for env in $CONFIGS
then do
echo "Service not running $DESC" "$NAME" setdnxenv "$env"
return 1 if ! running
fi then
log_daemon_msg "Stopping service $DESC" "$NAME" echo Service not running $DESC
start-stop-daemon -K -p "$PIDFILE" log_end_msg 1
rm -f "$PIDFILE" else
log_end_msg 0 log_daemon_msg "Stopping service $DESC" "$NAME"
start-stop-daemon -K -p "$PIDFILE"
rm -f "$PIDFILE"
log_end_msg 0
fi
done
} }
case "$1" in case "$1" in
@ -101,3 +121,5 @@ case "$1" in
esac esac
export runlevel=$TMP_SAVE_runlevel_VAR export runlevel=$TMP_SAVE_runlevel_VAR

Loading…