mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-02-22 16:54:15 +01:00
84 lines
1.7 KiB
Bash
84 lines
1.7 KiB
Bash
|
#!/bin/sh
|
||
|
### BEGIN INIT INFO
|
||
|
# Provides: unicorn
|
||
|
# Required-Start: $remote_fs $syslog
|
||
|
# Required-Stop: $remote_fs $syslog
|
||
|
# Default-Start: 2 3 4 5
|
||
|
# Default-Stop: 0 1 6
|
||
|
# Short-Description: Manage unicorn server
|
||
|
# Description: Start, stop, restart unicorn server for a specific application.
|
||
|
### END INIT INFO
|
||
|
set -e
|
||
|
|
||
|
# Feel free to change any of the following variables for your app:
|
||
|
TIMEOUT=${TIMEOUT-60}
|
||
|
APP_ROOT=/home/admin/apps/fabmanager/current
|
||
|
PID=$APP_ROOT/tmp/pids/unicorn.pid
|
||
|
CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"
|
||
|
AS_USER=sleede
|
||
|
set -u
|
||
|
|
||
|
OLD_PIN="$PID.oldbin"
|
||
|
|
||
|
sig () {
|
||
|
test -s "$PID" && kill -$1 `cat $PID`
|
||
|
}
|
||
|
|
||
|
oldsig () {
|
||
|
test -s $OLD_PIN && kill -$1 `cat $OLD_PIN`
|
||
|
}
|
||
|
|
||
|
run () {
|
||
|
if [ "$(id -un)" = "$AS_USER" ]; then
|
||
|
eval $1
|
||
|
else
|
||
|
su -c "$1" - $AS_USER
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
case "$1" in
|
||
|
start)
|
||
|
sig 0 && echo >&2 "Already running" && exit 0
|
||
|
run "$CMD"
|
||
|
;;
|
||
|
stop)
|
||
|
sig QUIT && exit 0
|
||
|
echo >&2 "Not running"
|
||
|
;;
|
||
|
force-stop)
|
||
|
sig TERM && exit 0
|
||
|
echo >&2 "Not running"
|
||
|
;;
|
||
|
restart|reload)
|
||
|
sig HUP && echo reloaded OK && exit 0
|
||
|
echo >&2 "Couldn't reload, starting '$CMD' instead"
|
||
|
run "$CMD"
|
||
|
;;
|
||
|
upgrade)
|
||
|
if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
|
||
|
then
|
||
|
n=$TIMEOUT
|
||
|
while test -s $OLD_PIN && test $n -ge 0
|
||
|
do
|
||
|
printf '.' && sleep 1 && n=$(( $n - 1 ))
|
||
|
done
|
||
|
echo
|
||
|
|
||
|
if test $n -lt 0 && test -s $OLD_PIN
|
||
|
then
|
||
|
echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds"
|
||
|
exit 1
|
||
|
fi
|
||
|
exit 0
|
||
|
fi
|
||
|
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
|
||
|
run "$CMD"
|
||
|
;;
|
||
|
reopen-logs)
|
||
|
sig USR1
|
||
|
;;
|
||
|
*)
|
||
|
echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>"
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|