ruby on rails - Why does my delayed_job fail without RVM? -
i have delayed_job
installed, , start daemon run jobs ruby script:
require 'rubygems' require 'daemon_spawn' $: << '.' rails_root = file.expand_path(file.join(file.dirname(__file__), '..')) class delayedjobworker < daemonspawn::base def start(args) env['rails_env'] ||= args.first || 'development' dir.chdir rails_root require file.join('config', 'environment') delayed::worker.new.start end def stop system("kill `cat #{rails_root}/tmp/pids/delayed_job.pid`") end end delayedjobworker.spawn!(:log_file => file.join(rails_root, "log", "delayed_job.log"), :pid_file => file.join(rails_root, 'tmp', 'pids', 'delayed_job.pid'), :sync_log => true, :working_dir => rails_root)
if run command rvmsudo
works perfectly.
if use ruby command without rvm fails , output. have no idea why happens. give me clue?
user@mysystem:~/redeal.it/application$ ruby script/delayed_job start production /usr/local/rvm/gems/ruby-1.9.3-p194/gems/daemon-spawn-0.4.2/lib/daemon_spawn.rb:16:in `kill': operation not permitted (errno::eperm) /usr/local/rvm/gems/ruby-1.9.3-p194/gems/daemon-spawn-0.4.2/lib/daemon_spawn.rb:16:in `alive?' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/daemon-spawn-0.4.2/lib/daemon_spawn.rb:125:in `alive?' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/daemon-spawn-0.4.2/lib/daemon_spawn.rb:176:in `block in start' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/daemon-spawn-0.4.2/lib/daemon_spawn.rb:176:in `select' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/daemon-spawn-0.4.2/lib/daemon_spawn.rb:176:in `start' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/daemon-spawn-0.4.2/lib/daemon_spawn.rb:165:in `spawn!' script/delayed_job:37:in `<main>'
you have permission issue.
putting simply: have delayed job running under user (proprably root
due using rvmsudo
), , daemon spawn trying kill it. operation not permitted
.
try killing delayed_job first rvmsudo, make sure not running (try ps aux
) , try start without rvmsudo
.
it should work.
Comments
Post a Comment