2016-07-05 1 views
0

J'essaie de construire dans ruby ​​on rails environnement mais quand je vérifie l'état licorne il me donne l'erreur suivante et je ne sais pas quoi faire. J'ai vérifié le chemin vers le config.rb et c'est là.Ruby on rails avec licorne fichier non lisible

/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>' 

config Unicorn

#!/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 

Répondre

0

Assurez-vous que vous exécutez unicorn via la commande:

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

Et si cela ne fonctionne pas, s'il vous plaît partager votre fichier config/unicorn.rb

+0

Cela ne fonctionne pas: / –

0

Fichier être présent sur le chemin ne signifie pas qu'il est lisible par un utilisateur particulier. Vérifiez que l'utilisateur sous lequel vous exécutez licorne a accès aux fichiers et aux répertoires. Habituellement, le propriétaire du code et l'utilisateur de la licorne sont les mêmes, donc chown -R that_username:that_username /path/to/app/source en conséquence.