diff --git a/Yavsc/contrib/kestrel b/Yavsc/contrib/kestrel index b2e81629..0ba7927c 100755 --- a/Yavsc/contrib/kestrel +++ b/Yavsc/contrib/kestrel @@ -1,8 +1,8 @@ #!/bin/bash ### BEGIN INIT INFO -# Provides: kestrel-pre -# Required-Start: $local_fs $network $named $time $syslog -# Required-Stop: $local_fs $network $named $time $syslog +# Provides: kestrel +# Required-Start: $local_fs $network $named $time $syslog $postgresql +# Required-Stop: $local_fs $network $named $time $syslog $postgresql # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: Script to run asp.net 5 application in background @@ -49,6 +49,7 @@ setdnxenv() { DESC="$NAME" PIDFILE=/var/run/kestrel-${NAME}.pid export MONO_OPTIONS="--server" + LOGDIR=/var/log # reset to specified values . $env } @@ -76,12 +77,12 @@ start() { log_end_msg 0 else log_daemon_msg "Starting service $NAME" - if ! start-stop-daemon -SbmCv -u $WWW_USER -p $PIDFILE -d $ROOT -x $DNXRUNTIME -- --project $PROJECT --configuration $CONFIGURATION $NAME >${ROOT}/kestrel-${NAME}.log + if ! start-stop-daemon -SbmCv -u $WWW_USER -p $PIDFILE -d $ROOT -x /usr/bin/mono $DNXRUNTIME -- --project $PROJECT --configuration $CONFIGURATION $NAME >${LOGDIR}/kestrel-${NAME}.log then - log_daemon_msg "Could not start $NAME : $?, see ${ROOT}/kestrel-${NAME}.log" + log_daemon_msg "Could not start $NAME : $?, see ${LOGDIR}/kestrel-${NAME}.log" log_end_msg 2 else - log_daemon_msg "Service $DESC started ($NAME), logs: ${ROOT}/kestrel-${NAME}.log" + log_daemon_msg "Service $DESC started ($NAME), logs: ${LOGDIR}/kestrel-${NAME}.log" log_end_msg 0 fi fi @@ -127,7 +128,6 @@ case "$1" in echo "Usage: $0 {start|stop|restart}" esac - export runlevel=$TMP_SAVE_runlevel_VAR diff --git a/Yavsc/contrib/kestrel-pre b/Yavsc/contrib/kestrel-pre new file mode 100644 index 00000000..6d13e7bf --- /dev/null +++ b/Yavsc/contrib/kestrel-pre @@ -0,0 +1,133 @@ +#!/bin/bash +### BEGIN INIT INFO +# Provides: kestrel-pre +# Required-Start: $local_fs $network $named $time $syslog $postgresql +# Required-Stop: $local_fs $network $named $time $syslog $postgresql +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Description: Script to run asp.net 5 application in background +### END INIT INFO + +# Author: Ivan Derevianko aka druss +# Modified by: Paul Schneider + +. /lib/init/vars.sh +. /lib/lsb/init-functions + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +CONFIGS="/etc/kestrel/*.prewebenv" +DNX_USER_HOME=/srv/www/dnx +DNXRUNTIMEVERSION=$(cat /srv/www/dnx/alias/default.alias) + +# fix issue with DNX exception in case of two env vars with the same name but different case +TMP_SAVE_runlevel_VAR=$runlevel +unset runlevel + +running() { + if [ -f $PIDFILE ] + then + DNXPID=$(cat $PIDFILE) + if kill -0 $DNXPID 2>/dev/null + then + return 0 + fi + fi + 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/yavscpre + DESC="$NAME" + PIDFILE=/var/run/kestrel-${NAME}.pid + export MONO_OPTIONS="--server" + LOGDIR=/var/log + # reset to specified values + . $env +} + +status() { + for env in $CONFIGS + do + setdnxenv "$env" + if running; + then + echo "Service running $DESC ($NAME; pid: $DNXPID)" + else + echo "Service stopped $DESC ($NAME)" + fi + done +} + + +start() { + for env in $CONFIGS + do + setdnxenv "$env" + if running; then + echo "Service already running $DESC" "$NAME" + log_end_msg 0 + else + log_daemon_msg "Starting service $NAME" + if ! start-stop-daemon -SbmCv -u $WWW_USER -p $PIDFILE -d $ROOT -x /usr/bin/mono $DNXRUNTIME -- --project $PROJECT --configuration $CONFIGURATION $NAME >${LOGDIR}/kestrel-${NAME}.log + then + log_daemon_msg "Could not start $NAME : $?, see ${LOGDIR}/kestrel-${NAME}.log" + log_end_msg 2 + else + log_daemon_msg "Service $DESC started ($NAME), logs: ${LOGDIR}/kestrel-${NAME}.log" + log_end_msg 0 + fi + fi + done + +} + +stop() { + for env in $CONFIGS + do + setdnxenv "$env" + if running + then + log_daemon_msg "Stopping service $NAME" + start-stop-daemon -K -p "$PIDFILE" + log_daemon_msg "$DESC stopped" + log_end_msg 0 + else + log_daemon_msg "$DESC Service not running" + log_end_msg 1 + fi + done +} + + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + sleep 1 + start + ;; + status) + status + ;; + + *) + echo "Usage: $0 {start|stop|restart}" +esac + +export runlevel=$TMP_SAVE_runlevel_VAR + +