

Railsアプリの本番環境用にamazon Linux + unicorn + nginx + posgtresql(RDS)の環境を構成中です。

unicornの起動スクリプト作成にあたり色々な情報を参考にしてみたものの起動が失敗してしまいます。

環境  
ruby 2.2.2  
rails 4.2.3  
unicorn 4.9.0  
postgresql 9.2.13

起動スクリプト/etc/init.d/unicornの内容

[code]

    #!/bin/sh
    #
    #
    # chkconfig: - 85 15
    # description: unicorn -- a rails app
    
    . /etc/rc.d/init.d/functions
    
    PROG_NAME=unicorn
    USER=ec2-user
    APP_ROOT=/home/ec2-user/server
    RAILS_ENV=production
    PID_FILE=$APP_ROOT/tmp/unicorn.pid
    CONFIG_FILE=$APP_ROOT/config/unicorn.rb
    CMD="/usr/local/rbenv/shims/unicorn_rails"
    ARGS="-c $CONFIG_FILE -D -E $RAILS_ENV"
    
    export PATH=/usr/local/bin:$PATH
    cd $APP_ROOT || exit 1
    
    case $1 in
      start)
        daemon --user=$USER --pidfile=$PID_FILE $CMD $ARGS
        ;;
      stop)
        killproc -p $PID_FILE $PROG_NAME -QUIT
        ;;
      restart)
        killproc -p $PID_FILE $PROG_NAEE -USR2
        ;;
      *)
      echo >&2 "Usage: $0 <start|stop|restart>"
      exit 1
      ;;
    esac
    
[/code]

`sudo service unicorn start`実行時のエラーログは下記のようになっています。

[code]

    I, [2015-10-15T09:31:03.537055 #17233]  INFO -- : reaped #<Process::Status: pid 17236 exit 0> worker=0
    I, [2015-10-15T09:31:03.537134 #17233]  INFO -- : reaped #<Process::Status: pid 17238 exit 0> worker=1
    I, [2015-10-15T09:31:03.537193 #17233]  INFO -- : master complete
    I, [2015-10-15T09:32:27.797578 #17708]  INFO -- : Refreshing Gem list
    I, [2015-10-15T09:32:29.038911 #17708]  INFO -- : unlinking existing socket=/home/ec2-user/server/tmp/unicorn.sock
    I, [2015-10-15T09:32:29.039043 #17708]  INFO -- : listening on addr=/home/ec2-user/server/tmp/unicorn.sock fd=11
    E, [2015-10-15T09:32:29.070183 #17708] ERROR -- : fe_sendauth: no password supplied
     (PG::ConnectionBad)
    
[/code]

`PG::ConnectionBad`とありますのでpostgresql関係の問題だと思いますが色々なサイトを見ても特にunicorn側でデータベースについて何か設定している様子がなくエラーの理由がわかりません。railsのdatabase.ymlのプロダクションDBの設定ではRDSで設定したDB名・ユーザ名・パスワード(環境変数)及びホストを設定しておりrake
db:migrateコマンドでテーブルの作成はできています。


CC BY-SA 3.0
2015-10-15T09:41:34.807
17681
2016-11-16T15:37:25.607
12232
question
ruby-on-rails nginx postgresql unicorn
EC2 Rails + unicorn 起動スクリプトの設定


確認できる環境がないので推測ですが・・正しくunicornが起動してないような気がします。  
たぶん、RAILS_ENVの値がセットできてないんじゃないかと。

原因は`unicorn_rails`コマンドだと思います。  
これはいわばRails 1, 2用のコマンドです。  
Rails3からはRackアプリケーションになっているので、`unicorn`コマンドを使用するように変更してみてください。

<https://stackoverflow.com/questions/12325923/what-is-the-difference-between-
unicorn-and-unicorn-rails/12326124#12326124>

<http://unicorn.bogomips.org/unicorn_rails_1.html>


CC BY-SA 3.0
2015-10-15T18:50:45.090
17696
2015-10-15T18:50:45.090
2017-05-23T12:38:56.467
-1
9608
17681
answer