ref: master
plugins/stoa/script/stoa-auth-server
#! /bin/sh ### BEGIN INIT INFO # Provides: noosfero # Required-Start: $remote_fs # Required-Stop: $remote_fs # Should-Start: postgresql # Should-Stop: postgresql # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Stoa authentication daemon # Description: This file should be symlinked or copied into /etc/init.d. ### END INIT INFO # Sample init.d script for noosfero. # # This script was based on the skeleton init.d script present in a Debian # GNU/Linux system (sid), on Sat Feb 16 11:12:03 BRT 2008. It must be placed # in /etc/init.d/ (or whatever place your system uses for startup scripts), # and you must create a file /etc/default/noosfero defining the variable # # Author: Antonio Terceiro# Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="Stoa authentication deamon" NAME=stoa-auth-server SCRIPTNAME=/etc/init.d/$NAME # default values NOOSFERO_DIR=/var/lib/noosfero/current NOOSFERO_USER=noosfero # Read configuration variable file if it is present if [ -r /etc/default/noosfero ]; then . /etc/default/noosfero else # for running from development setup, or from git with the script symlinked script=$(readlink -f $0) NOOSFERO_DIR=$(readlink -f $(dirname $script)/../../..) NOOSFERO_USER=$(stat --format %U $NOOSFERO_DIR/tmp/pids) fi # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh . /lib/lsb/init-functions if [ -z "$NOOSFERO_DIR" ] || [ -z "$NOOSFERO_USER" ]; then echo "NOOSFERO_DIR or NOOSFERO_USER not defined, noosfero not being started." echo "Both variables must be defined in /etc/default/noosfero" exit 0 fi if test -x /usr/sbin/noosfero-check-dbconfig ; then if ! /usr/sbin/noosfero-check-dbconfig; then echo "Noosfero database access not configured, service disabled." exit 0 fi fi ###################### THIN_PID_FILE='--pid tmp/pids/stoa-auth-server.pid' THIN_START_OPTIONS="--port 4000 --environment production --chdir $NOOSFERO_DIR --rackup plugins/stoa/config.ru --log log/stoa-auth-server.log --daemonize" as_noosfero_user() { cmd="$@" if [ "$NOOSFERO_USER" != "$USER" ]; then su $NOOSFERO_USER -l -c "cd $NOOSFERO_DIR && $cmd" else cd $NOOSFERO_DIR $cmd fi } run_thin() { action="$1" shift log_daemon_msg "$action $DESC" "$NAME" if as_noosfero_user thin $THIN_PID_FILE $@; then log_success_msg else log_failure_msg fi } running() { kill -0 $(cat $NOOSFERO_DIR/tmp/pids/stoa-auth-server.pid 2>/dev/null || true) 2>/dev/null } do_start() { if ! running; then run_thin "Starting" $THIN_START_OPTIONS start fi } do_stop() { if running; then run_thin "Stopping" stop fi } do_restart() { if running; then do_stop fi do_start } case "$1" in start|stop|restart) do_$1 ;; force-reload) do_restart ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|setup}" >&2 exit 3 ;; esac