yavsc/contrib/kestrel

138 lines
2.9 KiB
Text
Raw Normal View History

2016-07-03 23:59:20 +02:00
#!/bin/bash
2016-05-17 18:22:18 +02:00
### BEGIN INIT INFO
2017-06-27 03:47:40 +02:00
# Provides: kestrel
# Required-Start: $local_fs $network $named $time $syslog $postgresql
# Required-Stop: $local_fs $network $named $time $syslog $postgresql
2016-05-17 18:22:18 +02:00
# 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 <drussilla7@gmail.com>
2016-07-03 23:59:20 +02:00
# Modified by: Paul Schneider <redienhcs.luap@gmail.com>
2016-05-17 18:22:18 +02:00
. /lib/init/vars.sh
. /lib/lsb/init-functions
2016-07-03 23:59:20 +02:00
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
CONFIGS="/etc/kestrel/*.webenv"
DNX_USER_HOME=/srv/www/dnx
DNXRUNTIMEVERSION=$(cat /srv/www/dnx/alias/default.alias)
2016-05-17 18:22:18 +02:00
2019-11-14 14:01:03 +00:00
. /home/paul/mono46/mono-env
MONO_BINARY=`which mono`
2016-05-17 18:22:18 +02:00
# 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() {
2016-07-03 23:59:20 +02:00
if [ -f $PIDFILE ]
then
DNXPID=$(cat $PIDFILE)
if kill -0 $DNXPID 2>/dev/null
then
return 0
fi
2016-05-17 18:22:18 +02:00
fi
return 1
}
2016-07-03 23:59:20 +02:00
setdnxenv() {
env=$1
. $env
# reset all except the name to default values
export ASPNET_ENV=$NAME
2019-11-14 14:01:03 +00:00
export WWW_USER=www-data
DNXEXE=${DNX_USER_HOME}/runtimes/${DNXRUNTIMEVERSION}/bin/ndnx
2016-07-03 23:59:20 +02:00
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 MONO_OPTIONS="--server"
2019-11-14 14:01:03 +00:00
export MONO_PATH=$MONO_PATH:${DNX_USER_HOME}/runtimes/${DNXRUNTIMEVERSION}/bin
2017-06-27 03:47:40 +02:00
LOGDIR=/var/log
2016-07-03 23:59:20 +02:00
# reset to specified values
. $env
}
2016-05-17 18:22:18 +02:00
status() {
2016-07-03 23:59:20 +02:00
for env in $CONFIGS
do
setdnxenv "$env"
2016-05-17 18:22:18 +02:00
if running;
then
2017-04-03 03:02:42 +02:00
echo "Service running $DESC ($NAME; pid: $DNXPID)"
2016-05-17 18:22:18 +02:00
else
2017-04-03 03:02:42 +02:00
echo "Service stopped $DESC ($NAME)"
2016-05-17 18:22:18 +02:00
fi
2016-07-03 23:59:20 +02:00
done
2016-05-17 18:22:18 +02:00
}
start() {
2016-07-03 23:59:20 +02:00
for env in $CONFIGS
do
setdnxenv "$env"
if running; then
echo "Service already running $DESC" "$NAME"
2017-04-03 03:02:42 +02:00
log_end_msg 0
2016-07-03 23:59:20 +02:00
else
2019-11-14 14:01:03 +00:00
log_daemon_msg "Starting service $NAME for user $WWW_USER"
if ! start-stop-daemon -SbmCv --user $WWW_USER -p $PIDFILE -d $ROOT -g www-data -x $DNXEXE -- --project $PROJECT --configuration $CONFIGURATION $NAME > "${LOGDIR}/kestrel-${NAME}.log"
2017-05-31 04:40:21 +02:00
then
2017-06-27 03:47:40 +02:00
log_daemon_msg "Could not start $NAME : $?, see ${LOGDIR}/kestrel-${NAME}.log"
2017-05-31 04:40:21 +02:00
log_end_msg 2
else
2017-06-27 03:47:40 +02:00
log_daemon_msg "Service $DESC started ($NAME), logs: ${LOGDIR}/kestrel-${NAME}.log"
2017-05-31 04:40:21 +02:00
log_end_msg 0
fi
2016-07-03 23:59:20 +02:00
fi
done
2016-05-17 18:22:18 +02:00
}
stop() {
2016-07-03 23:59:20 +02:00
for env in $CONFIGS
do
setdnxenv "$env"
2017-04-03 03:02:42 +02:00
if running
2016-07-03 23:59:20 +02:00
then
2017-04-03 03:02:42 +02:00
log_daemon_msg "Stopping service $NAME"
2016-07-03 23:59:20 +02:00
start-stop-daemon -K -p "$PIDFILE"
2017-04-03 03:02:42 +02:00
log_daemon_msg "$DESC stopped"
2016-07-03 23:59:20 +02:00
log_end_msg 0
2017-04-03 03:02:42 +02:00
else
log_daemon_msg "$DESC Service not running"
log_end_msg 1
2016-07-03 23:59:20 +02:00
fi
done
2016-05-17 18:22:18 +02:00
}
2017-04-03 03:02:42 +02:00
2016-05-17 18:22:18 +02:00
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
2017-05-31 04:40:21 +02:00
sleep 1
2016-05-17 18:22:18 +02:00
start
;;
status)
status
;;
2017-04-03 03:02:42 +02:00
2016-05-17 18:22:18 +02:00
*)
echo "Usage: $0 {start|stop|restart}"
esac
export runlevel=$TMP_SAVE_runlevel_VAR
2016-07-03 23:59:20 +02:00