Estoy usando BluePill para administrar procesos como el trabajo retrasado para Rails. En el registro de Bluepill, estoy consiguiendo este mensaje:Falta el archivo PID cuando se utiliza un administrador de procesos para iniciar el trabajo demorado
W, [2010-09-27T01:23:20.447053 #19441] WARN -- : [fsg_distro:delayed_job] pid_file /srv/fsg_distro/shared/pids/delayed_job.pid does not exist or cannot be read
W, [2010-09-27T01:23:20.447368 #19441] WARN -- : [fsg_distro:delayed_job] Executing start command: ruby script/delayed_job -e production start
I, [2010-09-27T01:23:20.469165 #19441] INFO -- : [fsg_distro:delayed_job] Going from down => starting
por lo que es afirmar que un archivo pid es que falta, que lo es, pero no debería PID que se crearán cuando Bluepill inicia el proceso de trabajo con retraso?
actualización a ser un poco más clara acerca de este error, puedo ejecutar correctamente el comando manualmente, pero Bluepill no puede ejecutar el comando de arranque. Al ejecutar de forma manual, se ve así:
[email protected]:/srv/fsg_distro/current$ /usr/bin/env RAILS_ENV=production /usr/bin/ruby /srv/fsg_distro/current/script/delayed_job start
delayed_job: process with pid 17564 started.
cuando corro con Bluepill se ve así:
W, [2010-10-03T21:24:13.943136 #17326] WARN -- : [fsg_distro:delayed_job] pid_file /srv/fsg_distro/shared/pids/delayed_job.pid does not exist or cannot be read
W, [2010-10-03T21:24:13.943391 #17326] WARN -- : [fsg_distro:delayed_job] pid_file /srv/fsg_distro/shared/pids/delayed_job.pid does not exist or cannot be read
I, [2010-10-03T21:24:13.943811 #17326] INFO -- : [fsg_distro:delayed_job] Going from starting => down
W, [2010-10-03T21:24:14.945274 #17326] WARN -- : [fsg_distro:delayed_job] pid_file /srv/fsg_distro/shared/pids/delayed_job.pid does not exist or cannot be read
W, [2010-10-03T21:24:14.945495 #17326] WARN -- : [fsg_distro:delayed_job] pid_file /srv/fsg_distro/shared/pids/delayed_job.pid does not exist or cannot be read
W, [2010-10-03T21:24:14.945826 #17326] WARN -- : [fsg_distro:delayed_job] Executing start command: /usr/bin/env RAILS_ENV=production /usr/bin/ruby /srv/fsg_distro/current/script/delayed_job start
W, [2010-10-03T21:24:15.049261 #17326] WARN -- : [fsg_distro:delayed_job] Start command execution returned non-zero exit code:
W, [2010-10-03T21:24:15.049491 #17326] WARN -- : [fsg_distro:delayed_job] {:stderr=>"", :exit_code=>1, :stdout=>""}
I, [2010-10-03T21:24:15.049947 #17326] INFO -- : [fsg_distro:delayed_job] Going from down => starting
Mi pastilla se ve así:
APP_ROOT='/srv/fsg_distro'
RAILS_ROOT='/srv/fsg_distro/current'
RAILS_ENV='production'
RUBY_EXEC='/usr/bin/ruby'
Bluepill.application("fsg_distro", :log_file => "/srv/fsg_distro/shared/log/bluepill.log") do |app|
app.process("delayed_job") do |process|
process.working_dir = RAILS_ROOT
process.start_grace_time = 30.seconds
process.stop_grace_time = 30.seconds
process.restart_grace_time = 30.seconds
process.start_command = "/usr/bin/env RAILS_ENV=#{RAILS_ENV} #{RUBY_EXEC} #{RAILS_ROOT}/script/delayed_job start"
process.stop_command = "/usr/bin/env RAILS_ENV=#{RAILS_ENV} #{RUBY_EXEC} #{RAILS_ROOT}/script/delayed_job stop"
process.pid_file = "#{APP_ROOT}/shared/pids/delayed_job.pid"
process.uid = "deploy"
process.gid = "deploy"
end
end
Y mi secuencia de comandos de trabajo retrasada se ve así:
#!/usr/bin/env ruby
ENV['RAILS_ENV'] ||= 'production'
require File.dirname(__FILE__) + '/../config/environment'
require 'delayed/command'
Delayed::Command.new(ARGV).daemonize
2 preguntas viendo cómo esto todavía no ha sido respondido. ¿Qué permiso necesitarías escribir en la carpeta/srv/fsg_distro/shared/pids/y los rieles de usuario (de la máquina george?) ¿Tienen esos permisos? – Hugo
Bluepill y yo, registrados, somos el mismo usuario ... Siempre que el usuario sea el propietario o el grupo, puede escribir en el directorio pids – Tony