読者です 読者をやめる 読者になる 読者になる

シンプルなmongrelの起動スクリプト

Rails Ruby Debian

停電などでリブートした時にmongrel自動的に立ち上がって欲しいので、
自動起動スクリプトを作ってみました。

#!/bin/bash
#

USER=enquete
RAILS_DIR=/home/enquete/koho_questionnaire
COMMAND=/var/lib/gems/1.8/bin/mongrel_rails

export RAILS_ENV=production

RETVAL=0

# Gracefully exit if the sudo is missing.
which sudo >/dev/null || exit 0

# Gracefully exit if the controller is missing.
which mongrel_rails >/dev/null || exit 0

# Go no further if config directory is missing.
[ -d "$RAILS_DIR" ] || exit 0

case "$1" in
    start)
      # Create pid directory
      echo "Starting... mongrel simple process"
      cd $RAILS_DIR
      sudo -u $USER $COMMAND start -d
      RETVAL=$?
  ;;
    stop)
      cd $RAILS_DIR
      sudo -u $USER $COMMAND stop
      RETVAL=$?
  ;;
    restart)
      cd $RAILS_DIR
      sudo -u $USER $COMMAND restart
      RETVAL=$?
  ;;
    *)
      echo "Usage: mongrel {start|stop|restart}"
      exit 1
  ;;
esac      

exit $RETVAL

これを/etc/init.d に置きmongrelという名前で保存します。
実行パーミッションを与えます。
USER、RAILS_DIR、COMMANDは適宜修正してください。

chmod a+x /etc/init.d/mongrel

次に自動起動スクリプトに登録します。

update-rc.d mongrel defaults

以上でユーザープロセスでmongrel自動起動します。
必ずsudoを入れておいてくださいね。