From 07419c9ea1042b574660464da82f2ab63519e4c8 Mon Sep 17 00:00:00 2001 From: Heiko Bernloehr Date: Wed, 21 Feb 2018 13:40:37 +0100 Subject: SLES12 vipeval start script. --- README.md | 9 +++-- misc/vipeval_sles12_startscript | 87 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 4 deletions(-) create mode 100755 misc/vipeval_sles12_startscript diff --git a/README.md b/README.md index 05e7125..c4920d2 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ In the upcoming irb (interactive ruby shell) type: MainLoop.instance.start ### Running in background -For instance via rails runner, change into `vipeval` directory and type: +For instance via rails runner, change into vipeval root directory and type: bundle exec rails runner -e production MainLoop.instance.start & @@ -35,7 +35,7 @@ or /path/to/vipeval/bundle exec rails runner -e production MainLoop.instance.start & You can place this also in a startup script (e.g. [sles12 init -script](doc/vipeval_sles12_startscript)): +script][vipeval-sles12-startscript]): ... case "$1" in @@ -51,7 +51,7 @@ script](doc/vipeval_sles12_startscript)): For security reasons you may want to serve at least the ECS login password via shell environment variable. Therefore you must uncomment the `#password: <%= ENV['ECS_PASSWORD'] %>` line in `config/appcfg.yml` and -comment the old `password: ...` line. then you can provide the password as +comment the old `password: ...` line. Then you can provide the password as an environment variable at the command line: ECS_PASSWORD=my-secure-password bundle exec rails console -e production @@ -62,7 +62,7 @@ or Of course it's up to you how you set the ECS\_PASSWORD enverionment variable. For instance you set it in your startup script (e.g. [sles12 init -script](doc/vipeval_sles12_startscript)), which is owned by root and could +script][vipeval-sles12-startscript]), which is owned by root and could only read by him. Or read it from a file owned and readable by root: ECS_PASSWORD=$(cat my_password_file) bundle exec ... @@ -71,3 +71,4 @@ only read by him. Or read it from a file owned and readable by root: [vipeval-master_github.zip]: https://github.com/freeit/vip_evaluation_server/archive/master.zip [freeit-repo]: https://git.freeit.de/vipeval [github-repo]: https://github.com/freeit/vip_evaluation_server +[vipeval-sles12-startscript]: misc/vipeval_sles12_startscript diff --git a/misc/vipeval_sles12_startscript b/misc/vipeval_sles12_startscript new file mode 100755 index 0000000..85d1934 --- /dev/null +++ b/misc/vipeval_sles12_startscript @@ -0,0 +1,87 @@ +#!/bin/sh +# +# /etc/init.d/vipeval +# +### BEGIN INIT INFO +# Provides: vipeval +# Required-Start: $network $remote_fs $syslog +# Should-Start: +# Required-Stop: $network $remote_fs $syslog +# Should-Stop: +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Description: Start +# Short-Description: vipeval +### END INIT INFO + +VIPEVAL_PIDFILE=/var/run/vipeval.pid +VIPEVAL_ROOT=/home/projects/vipeval + + +# Shell functions sourced from /etc/rc.status: +# rc_check check and set local and overall rc status +# rc_status check and set local and overall rc status +# rc_status -v ditto but be verbose in local rc status +# rc_status -v -r ditto and clear the local rc status +# rc_status -s display "skipped" and exit with status 3 +# rc_status -u display "unused" and exit with status 3 +# rc_failed set local and overall rc status to failed +# rc_failed set local and overall rc status to +# rc_reset clear local rc status (overall remains) +# rc_exit exit appropriate to overall rc status +# rc_active checks whether a service is activated by symlinks +# rc_splash arg sets the boot splash screen to arg (if active) +. /etc/rc.status + +# First reset status of this service +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - generic or unspecified error +# 2 - invalid or excess argument(s) +# 3 - unimplemented feature (e.g. "reload") +# 4 - user had insufficient privileges +# 5 - program is not installed +# 6 - program is not configured +# 7 - program is not running +# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) +# +# Note that starting an already running service, stopping +# or restarting a not-running service as well as the restart +# with force-reload (in case signaling is not supported) are +# considered a success. + +case "$1" in + start) + echo -n "Starting VIP Evaluation Backend" + su -l -c "cd $VIPEVAL_ROOT && bundle exec rails runner -e production MainLoop.instance.start &" freeit + rc_status -v + ;; + stop) + echo -n "Shutting down VIP Evaluation Backend" + kill `ps ax | grep -v 'grep.*bin/rails runner -e production MainLoop.instance.start' | grep 'bin/rails runner -e production MainLoop.instance.start' | awk '{print $1}'` + rc_status -v + ;; + restart) + $0 stop + $0 start + rc_status + ;; + status) + PATH="/bin:/usr/bin" + pid=`/bin/ps ax | /usr/bin/grep -v 'grep.*bin/rails runner -e production MainLoop.instance.start' | /usr/bin/grep 'bin/rails runner -e production MainLoop.instance.start' | /usr/bin/awk '{print $1}'` + if [ -n "$pid" ]; then + echo "online (pid=$pid)" + exit 0 + else + echo offline + exit 1 + fi + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +rc_exit -- cgit v1.2.3