fetsite installation
This commit is contained in:
119
templates/fetsite/unicorn.j2
Executable file
119
templates/fetsite/unicorn.j2
Executable file
@@ -0,0 +1,119 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# init.d script for single or multiple unicorn installations. Expects at least one .conf
|
||||
# file in /etc/unicorn
|
||||
#
|
||||
# Modified by jay@gooby.org http://github.com/jaygooby
|
||||
# based on http://gist.github.com/308216 by http://github.com/mguterl
|
||||
#
|
||||
## A sample /etc/unicorn/my_app.conf
|
||||
##
|
||||
## RAILS_ENV=production
|
||||
## RAILS_ROOT=/var/apps/www/my_app/current
|
||||
#
|
||||
# This configures a unicorn master for your app at /var/apps/www/my_app/current running in
|
||||
# production mode. It will read config/unicorn.rb for further set up.
|
||||
#
|
||||
# You should ensure different ports or sockets are set in each config/unicorn.rb if
|
||||
# you are running more than one master concurrently.
|
||||
#
|
||||
# If you call this script without any config parameters, it will attempt to run the
|
||||
# init command for all your unicorn configurations listed in /etc/unicorn/*.conf
|
||||
#
|
||||
# /etc/init.d/unicorn start # starts all unicorns
|
||||
#
|
||||
# If you specify a particular config, it will only operate on that one
|
||||
#
|
||||
# /etc/init.d/unicorn start /etc/unicorn/my_app.conf
|
||||
|
||||
set -e
|
||||
|
||||
sig () {
|
||||
test -s "$PID" && kill -$1 `cat "$PID"`
|
||||
}
|
||||
|
||||
oldsig () {
|
||||
test -s "$OLD_PID" && kill -$1 `cat "$OLD_PID"`
|
||||
}
|
||||
|
||||
cmd () {
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
sig 0 && echo >&2 "Already running" && exit 0
|
||||
echo "Starting"
|
||||
$CMD
|
||||
;;
|
||||
stop)
|
||||
sig QUIT && echo "Stopping" && exit 0
|
||||
echo >&2 "Not running"
|
||||
;;
|
||||
force-stop)
|
||||
sig TERM && echo "Forcing a stop" && exit 0
|
||||
echo >&2 "Not running"
|
||||
;;
|
||||
restart)
|
||||
sig USR2 && echo "Starting new process" && sleep 5 && oldsig QUIT && echo "Killing old master" `cat $OLD_PID` && exit 0
|
||||
echo >&2 "Couldn't reload, starting '$CMD' instead"
|
||||
$CMD
|
||||
;;
|
||||
reload)
|
||||
sig HUP && echo "Reloading Config" && exit 0
|
||||
echo >&2 "Couldn't reload, starting '$CMD' instead"
|
||||
$CMD
|
||||
;;
|
||||
upgrade)
|
||||
sig USR2 && echo Upgraded && exit 0
|
||||
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
|
||||
$CMD
|
||||
;;
|
||||
rotate)
|
||||
sig USR1 && echo rotated logs OK && exit 0
|
||||
echo >&2 "Couldn't rotate logs" && exit 1
|
||||
;;
|
||||
*)
|
||||
echo >&2 "Usage: $0 <start|stop|restart|upgrade|rotate|force-stop>"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
setup () {
|
||||
|
||||
echo -n "$RAILS_ROOT: "
|
||||
cd $RAILS_ROOT || exit 1
|
||||
export PID=$RAILS_ROOT/tmp/pids/unicorn.pid
|
||||
export OLD_PID="$PID.oldbin"
|
||||
export HOME=$RAILS_ROOT
|
||||
export RAILS_ENV=$RAILS_ENV
|
||||
CMD="{{ rvm1_install_path }}/wrappers/{{site.ruby}}@{{site.gemset}}/unicorn_rails -c config/unicorn.rb -E $RAILS_ENV -D"
|
||||
CMD="{{ rvm1_install_path }}/wrappers/{{site.ruby}}@{{site.gemset}}/bundle exec unicorn_rails -c config/unicorn.rb -E $RAILS_ENV -D"
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_stop () {
|
||||
|
||||
# either run the start/stop/reload/etc command for every config under /etc/unicorn
|
||||
# or just do it for a specific one
|
||||
|
||||
# $1 contains the start/stop/etc command
|
||||
# $2 if it exists, should be the specific config we want to act on
|
||||
if [ $2 ]; then
|
||||
. $2
|
||||
setup
|
||||
cmd $1
|
||||
else
|
||||
for CONFIG in /etc/unicorn/*.conf; do
|
||||
# import the variables
|
||||
. $CONFIG
|
||||
setup
|
||||
|
||||
# run the start/stop/etc command
|
||||
cmd $1
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
ARGS="$1 $2"
|
||||
start_stop $ARGS
|
||||
Reference in New Issue
Block a user