Ich versuche in Ruby on Rails Umgebung zu bauen, aber wenn ich den Einhornstatus überprüfe, gibt es mir den folgenden Fehler und ich weiß nicht, was zu tun ist. Ich habe den Pfad zum config.rb
überprüft und es ist da.Ruby on rails mit Einhorn nicht lesbare Datei
/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>'
Unicorn Config
#!/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
Es funktioniert nicht: / –