2016-07-05 5 views
0

Rubyでビルドしようとしていますが、ユニコーンの状態をチェックすると、次のエラーが出てしまい、何をすべきかわかりません。 config.rbへのパスを確認したところです。ユニコーンの読み込み可能なファイルがあるRuby上のRuby

/usr/local/rvm/gems/ruby-2.2.2/gems/unicorn-5.1.0/lib/unicorn/configurator.rb:644:in `parse_rackup_file': rackup file (status) not readable (ArgumentError) 
    from /usr/local/rvm/gems/ruby-2.2.2/gems/unicorn-5.1.0/lib/unicorn/configurator.rb:74:in `reload' 
    from /usr/local/rvm/gems/ruby-2.2.2/gems/unicorn-5.1.0/lib/unicorn/configurator.rb:65:in `initialize' 
    from /usr/local/rvm/gems/ruby-2.2.2/gems/unicorn-5.1.0/lib/unicorn/http_server.rb:76:in `new' 
    from /usr/local/rvm/gems/ruby-2.2.2/gems/unicorn-5.1.0/lib/unicorn/http_server.rb:76:in `initialize' 
    from /usr/local/rvm/gems/ruby-2.2.2/gems/unicorn-5.1.0/bin/unicorn:126:in `new' 
    from /usr/local/rvm/gems/ruby-2.2.2/gems/unicorn-5.1.0/bin/unicorn:126:in `<top (required)>' 
    from /usr/local/rvm/gems/ruby-2.2.2/bin/unicorn:23:in `load' 
    from /usr/local/rvm/gems/ruby-2.2.2/bin/unicorn:23:in `<main>' 
    from /usr/local/rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `eval' 
    from /usr/local/rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `<main>' 

ユニコーン設定

#!/bin/bash 
### BEGIN INIT INFO 
# Provides:   unicorn 
# Required-Start: $local_fs $remote_fs 
# Required-Stop:  $local_fs $remote_fs 
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: unicorn initscript 
# Description:  Unicorn is an HTTP server for Rack application 
### END INIT INFO 

# based on http://gist.github.com/308216 by http://github.com/mguterl 
# 
## A sample /etc/unicorn/my_app.conf 
## 
## RAILS_ENV=production 
## RAILS_ROOT=/var/apps/www/my_app/current 
## PID=$RAILS_ROOT/tmp/unicorn.pid 
## START_CMD="bundle exec unicorn" 
## USER="www-data" 
#PATH=/usr/local/bin:/usr/bin:/bin 

set -e 


sig() { 
    test -s "$PID" && kill -$1 `cat "$PID"` 
} 

oldsig() { 
    test -s "$OLD_PID" && kill -$1 `cat "$OLD_PID"` 
} 

run_cmd() { 
    if [ -z "$SUDO" ]; then 
    $CMD 
    else 
    $SUDO "$CMD" 
    fi 
} 

cmd() { 


    case $1 in 
    start) 
     sig 0 && echo >&2 "Already running" && return 
     echo "Starting" 
     run_cmd 
     ;; 
    stop) 
     sig QUIT && echo "Stopping" && return 
     echo >&2 "Not running" 
     ;; 
    force-stop) 
     sig TERM && echo "Forcing a stop" && return 
     echo >&2 "Not running" 
     ;; 
    restart|reload) 
     sig USR2 && sleep 5 && oldsig QUIT && echo "Killing old master" `cat $OLD_PID` && return 
     echo >&2 "Couldn't reload, starting '$CMD' instead" 
     run_cmd 
     ;; 
    upgrade) 
     sig USR2 && echo Upgraded && return 
     echo >&2 "Couldn't upgrade, starting '$CMD' instead" 
    run_cmd 
     ;; 
    rotate) 
     sig USR1 && echo rotated logs OK && return 
     echo >&2 "Couldn't rotate logs" && return 
     ;; 
    status) 
     sig 0 && echo >&2 "Already running" && return 
     echo >&2 "Not running" && return 
     ;; 
    *) 
     echo >&2 "Usage: $0 <start|stop|restart|upgrade|rotate|force-stop>" 
     return 
     ;; 
    esac 
} 

setup() { 
# echo -n "$RAILS_ROOT: " 
    cd $RAILS_ROOT || exit 1 

"/usr/local/rvm/scripts/rvm" 
#/usr/local/rvm/environments/[email protected] 

    if [ -z "$PID" ]; then 
    PID=$RAILS_ROOT/tmp/pids/unicorn.pid 
    fi 

# if [ -z "$DATABASE_URL" ]; then 
# DATABASE_URL=null 
# fi 

# export DATABASE_URL 
    export PID 
    export OLD_PID="$PID.oldbin" 
    export RAILS_ROOT 
    if [ -z "$START_CMD" ]; then 
    START_CMD="bundle exec unicorn" 
    fi 
    CMD="cd $RAILS_ROOT && $START_CMD -c $UNICORN_CONFIG -E $RAILS_ENV -D" 
    export CMD 
    echo "CMD: " $CMD 

    SUDO="" 
# echo who: `whoami` 
# echo user $USER 
    if [ "$USER" != `whoami` ]; then 
    SUDO="sudo -u $USER -s -H $RUNSHELL -c" 
    else 
    SUDO="$RUNSHELL -c" 
    fi 
    export SUDO 
# echo "SUDO: "$SUDO 
# echo $SHELL 
} 

start_stop() { 

    # either run the start/stop/reload/etc command for every config under /etc/unicorn 
    # or just do it for a specific one 

    # $1 contains the start/stop/etc command 
    # $2 if it exists, should be the specific config we want to act on 
    if [ -f "/etc/unicorn/$2.conf" ]; then 
    . /etc/unicorn/$2.conf 
    export UNICORN_CONFIG="/etc/unicorn/$2.unicorn.rb" 
    setup 
    cmd $1 
    else 
    for CONFIG in /etc/unicorn/*.conf; do 
     # import the variables 
     export UNICORN_CONFIG=`echo ${CONFIG} | sed 's/conf/unicorn.rb/'` 
     . $CONFIG 
     setup 

     # run the start/stop/etc command 
     cmd $1 
     unset PID 
    done 
    fi 
} 

ARGS="$1 $2" 
start_stop $ARGS 

答えて

0

コマンド経由でunicornを実行していることを確認してください:

bundle exec unicorn -D -E <environment> -c config/unicorn.rb 

そして、それが動作しない場合は、あなたのファイルを共有してくださいconfig/unicorn.rb

+0

動作しません。/ –

0

ファイルをパスに存在していても、特定のユーザーが読むことはできません。 unicornを実行しているユーザーがファイルとディレクトリにアクセスできることを確認します。通常、コード所有者とユニコーンユーザーは同じですので、それに応じてchown -R that_username:that_username /path/to/app/sourceとなります。

関連する問題