2010-12-22 4 views
1

Ich verwende "delayed_job", um etwas im Hintergrundprozess zu bearbeiten. Ich laufe mit demselben Projekt in der lokalen Maschine und es funktioniert gut. Jedoch führe ich es auf dem Server aus, was ein Problem verursacht. Ich habe ein anderes Projekt mit delayed_job auch und es funktioniert gut auf dem gleichen Server, der das Problem verursacht.Kann den Dienst "delayed_job" nicht starten

Unten ist die Ausnahme:

exit 
["/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/daemonize.rb:167:in `exit'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/daemonize.rb:167:in `call_as_daemon'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:254:in `start_proc'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:294:in `start'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/controller.rb:70:in `run'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:193", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in `call'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in `catch_exceptions'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:192:in `run_proc'", 
"/usr/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:71:in `run_process'", 
"/usr/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:65:in `daemonize'", 
"/usr/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:63:in `times'", 
"/usr/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:63:in `daemonize'", 
"script/delayed_job:5"] 
delayed_job: process with pid 16880 started. 

Antwort

0

Seltsamer sagt es 'Prozess mit pid 16880 gestartet'. Wenn Sie das ausführen:

ps -Alf | grep 16880 

Zeigt es Ihnen, dass der Prozess ausgeführt wird? In diesem Fall würde ich die Protokolldateien konsultieren, die es schreibt.

Sie sind möglicherweise nicht berechtigt, den Prozess zu starten? Versuchen

sudo RAILS_ENV=production script/delayed_job start 

es keine gute Idee ist, die Dinge zu halten, auf diese Weise auf dem Server - aber es sollte Ihnen sagen, ob es ein Problem mit Benutzerberechtigungen ist für welche auch immer Benutzer des dj-Prozess ausgeführt wird.

Und obendrein, stellen Sie sicher, dass Sie nicht versehentlich mehrere Instanzen des delayed_job-Daemon ausgeführt haben. Nicht sicher, was der Prozess aufgerufen wird, aber Sie können ps verwenden und grep alle Instanzen zu finden und dann töten sie:

ps -Alf | grep delayed_job 

Dann lassen Sie uns sagen, dass Sie mehrere Instanzen laufen sehen, und das erste hat eine Prozess-ID 123456

kill -HUP 123456 
+0

Danke für Ihre Information. Aber nachdem ich den Befehl start service ausgeführt habe, überprüfe ich mit "ps aux | grep 'delayed_job'" und es zeigt nichts. – tiny

+0

Es könnte nur als Ruby bezeichnet werden, versuchen Sie ein | grep ruby ​​ – stef

+0

danke, aber es nicht so. – tiny