ref: main
scripts/cirandas
#! /bin/sh ### BEGIN INIT INFO # Provides: cirandas # 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: Example initscript # Description: This file should be used to construct scripts to be # placed in /etc/init.d. ### END INIT INFO # Sample init.d script for cirandas # # 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 # # 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="Noosfero web platform" NAME=cirandas SCRIPTNAME=/etc/init.d/$NAME # default values NOOSFERO_DIR=/home/cirandas/noosfero-ecosol NOOSFERO_USER=cirandas PIDFILE="$NOOSFERO_DIR/tmp/pids/unicorn.pid" . /lib/lsb/init-functions # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh if test -x /usr/sbin/noosfero-check-dbconfig ; then if ! noosfero-check-dbconfig; then echo "Noosfero database access not configured, service disabled." exit 0 fi fi ###################### noosfero_run() { if [ "$NOOSFERO_USER" != "$USER" ]; then # su -l is buggy to load rc and profile su $NOOSFERO_USER -l -c "bash -l -c \"cd $NOOSFERO_DIR && rbenv shell 2.3.4 && export RUBY_GC_MALLOC_LIMIT='90000000' export LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libjemalloc.so.1' $*\"" else cd $NOOSFERO_DIR && \ rbenv shell 2.3.4 && export RUBY_GC_MALLOC_LIMIT='90000000' export LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libjemalloc.so.1' $* fi } main_script() { # WARN: Solr doesn't need a restart if [ "$1" != "restart" ]; then noosfero_run RAILS_ENV=production rake solr:$1 fi if [ "$1" = "restart" ]; then kill -USR2 `cat $NOOSFERO_DIR/tmp/pids/unicorn.pid` 2>&1 > /dev/null elif [ "$1" = "start" ]; then noosfero_run bundle exec unicorn -D -c config/unicorn.conf.rb -E production elif [ "$1" = "stop" ]; then kill `cat $NOOSFERO_DIR/tmp/pids/unicorn.pid` 2>&1 > /dev/null fi } do_start() { if ! running; then # actually start the service main_script start else echo 'Noosfero is already running, nothing to do...' fi } do_stop() { if running; then main_script stop else echo 'Noosfero is already stopped, nothing to do...' fi } do_restart() { if ! running; then do_start else main_script restart fi } do_status() { status_of_proc -p $PIDFILE "noosfero" "$NAME" } running(){ status_of_proc -p $PIDFILE "noosfero" "$NAME" 2>&1 > /dev/null } case "$1" in start|stop|restart|status) do_$1 exit $? ;; force-reload) do_restart ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2 exit 3 ;; esac :