ruby-on-rails - escape - rails slim for
Usando God para monitorear Unicorn-Start exit con un código distinto de cero=1 (3)
Agregar la opción de registro me ha ayudado mucho en la depuración.
God.watch do |w|
w.log = "#{RAILS_ROOT}/log/god.log"
# remainder of config
end
Al final, mi error resultó ser el start_script
en Dios fue ejecutado en el entorno de development
. Lo arreglé añadiendo el RAILS_ENV
al script de inicio.
start_script = "RAILS_ENV=#{ENV[''RACK_ENV'']} bundle exec sidekiq -P #{pid_file} -C #{config_file} -L #{log_file} -d"
Estoy trabajando en un guión de Dios para monitorear mis Unicornios. Comencé con el script de ejemplos de GitHub y lo he modificado para que coincida con la configuración de mi servidor. Una vez que Dios se está ejecutando, los comandos tales como god stop unicorn
y god restart unicorn
trabajo del god restart unicorn
bien.
Sin embargo, god start unicorn
da como resultado WARN: unicorn start command exited with non-zero code = 1
. La parte extraña es que si copio el script de inicio directamente desde el archivo de configuración, comienza como un nuevo mustang.
Este es mi comando de inicio:
/usr/local/bin/unicorn_rails -c /home/my-linux-user/my-rails-app/config/unicorn.rb -E production -D
He declarado todas las rutas como absolutas en el archivo de configuración. ¿Alguna idea de qué podría impedir que funcione este script?
Mi problema es que nunca incluí como root. Aquí esta lo que hice:
sudo bash
cd RAILS_ROOT
bundle
Recibes una advertencia que te dice que nunca hagas esto:
No ejecute Bundler como root. Bundler puede solicitar sudo si es necesario, e instalar su paquete como root romperá esta aplicación para todos los usuarios no root en esta máquina.
Pero era la única forma en que podía obtener resque o unicornio para correr con dios. Esto fue en una instancia de ec2 si eso ayuda a cualquiera.
No he usado el unicornio como servidor de aplicaciones, pero he usado a Dios para monitorearlo antes.
Si recuerdo correctamente cuando comienzas a dios y das tu archivo de configuración, automáticamente comienza lo que sea que le digas que mire. Es probable que el unicornio ya se esté ejecutando, por lo que arroja el error.
Verifica esto ejecutando el god status
una vez que hayas comenzado a dios. Si ese no es el caso, puede verificar en la línea de comando cuál es el estado de salida del comando:
/usr/local/bin/unicorn_rails -c /home/my-linux-user/my-rails-app/config/unicorn.rb -E production -D;
echo $?;
ese eco imprimirá el estado de salida del último comando. Si es cero, el último comando no informó errores. Intenta iniciar unicornio dos veces seguidas, espero que la segunda vez devuelva 1 porque ya se está ejecutando.
EDITAR:
incluida la solución real de los comentarios, ya que esta parece ser una respuesta popular:
Puede establecer un usuario y un grupo explícito si su proceso requiere que se ejecute como un usuario específico.
God.watch do |w|
w.uid = ''root''
w.gid = ''root''
# remainder of config
end