スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

unicornの起動スクリプトをメモ

unicornの起動スクリプトをメモ。
export PATHの部分は、bundleの実行パス。
gem environmentで出てくる一覧の「EXECUTABLE DIRECTORY」を指定する。
#!/bin/sh

# chkconfig: - 85 15
# description: start/stop unicorn script.
# processname: unicorn_app

export PATH=/home/vagrant/.rbenv/versions/2.3.1/bin

# move to project root directory
NAME="Unicorn"
APP_ROOT_DIR="/vagrant/rails_root"
PID="$APP_ROOT_DIR/tmp/pids/unicorn.pid"
CONF="$APP_ROOT_DIR/config/unicorn/development.rb"
ENVIROMENT="development"
USER="vagrant"

start()
{
if [ -e $PID ]; then
echo "$NAME already started";
exit 1;
fi
echo "start $NAME";
cd $APP_ROOT_DIR
su -c "bundle exec unicorn -E $ENVIROMENT -c $CONF -D" $USER
}

stop()
{
if [ ! -e $PID ]; then
echo "$NAME not started";
exit 1;
fi
echo "stop $NAME";
su -c "kill -QUIT `cat ${PID}`" $USER
su -c "rm -f $PID" $USER
}

force_stop()
{
if [ ! -e $PID ]; then
echo "$NAME not started";
exit 1;
fi
echo "stop $NAME";
su -c "kill -TERM `cat ${PID}`" $USER
su -c "rm -f $PID" $USER
}

reload()
{
if [ ! -e $PID ]; then
echo "$NAME not started";
start
exit 0;
fi
echo "reload $NAME";
su -c "kill -HUP `cat ${PID}`" $USER
}

restart()
{
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
force-stop)
force_stop
;;
reload)
reload
;;
restart)
restart
;;
*)
echo "Syntax Error: release [start|stop|force-stop|reload|restart]"
;;
esac

exit


これを「/etc/init.d/unicorn_rails_app」とかって名前で保存して実行権限を付与する。
sudo chmod +x /etc/init.d/unicorn_rails_app

これで
$ sudo service unicorn_rails_app start
$ sudo service unicorn_rails_app stop
で実行出来る。

参考サイト
Unicorn プロセスを自動起動させる init.d スクリプト用の Chef Recipe
bundleコマンドのパスを通す方法
Unicorn - 起動スクリプト作成!
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。