40 lines
808 B
Plaintext
40 lines
808 B
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
# This is a helper script you can use to supervise unicorn, it allows you to perform a live restart
|
||
|
# by sending it a USR2 signal
|
||
|
|
||
|
LOCAL_WEB="http://127.0.0.1:3000/"
|
||
|
|
||
|
function on_exit()
|
||
|
{
|
||
|
kill $UNICORN_PID
|
||
|
echo "exiting"
|
||
|
}
|
||
|
|
||
|
function on_reload()
|
||
|
{
|
||
|
echo "Reloading unicorn"
|
||
|
kill -s USR2 $UNICORN_PID
|
||
|
sleep 10
|
||
|
curl $LOCAL_WEB &> /dev/null
|
||
|
NEW_UNICORN_PID=`ps -f --ppid $UNICORN_PID | grep unicorn | grep -v worker | awk '{ print $2 }'`
|
||
|
kill $UNICORN_PID
|
||
|
echo "Old pid is: $UNICORN_PID New pid is: $NEW_UNICORN_PID"
|
||
|
UNICORN_PID=$NEW_UNICORN_PID
|
||
|
}
|
||
|
|
||
|
export UNICORN_SUPERVISOR_PID=$$
|
||
|
|
||
|
trap on_exit EXIT
|
||
|
trap on_reload USR2
|
||
|
|
||
|
unicorn -c $1 &
|
||
|
UNICORN_PID=$!
|
||
|
|
||
|
echo "supervisor pid: $UNICORN_SUPERVISOR_PID unicorn pid: $UNICORN_PID"
|
||
|
|
||
|
while [ -e /proc/$UNICORN_PID ]
|
||
|
do
|
||
|
sleep 0.1
|
||
|
done
|