2009-07-31 4 views
0

Ich benutze Rightscale, um eine Instanz auf Amazon EC2 zu starten. Alle meine Boot-Skripte funktionieren gut und erledigen Dinge wie die folgenden Dateinamen in den Ordnern. Das letzte Boot-Skript ist das folgende:Sehr seltsames Verhalten beim Starten von Ruby-Daemons aus dem Bash-Skript beim Booten

#!/bin/bash 

MAINDIR="/root/username/"  

ruby ${MAINDIR}insertfd_control.rb stop 
ruby ${MAINDIR}insertfd_control.rb start 
ruby ${MAINDIR}inserttk_control.rb stop 
ruby ${MAINDIR}inserttk_control.rb start 

Ich möchte es verwenden, um meine Daemons zu starten, die ich in Ruby geschrieben habe. Es wird als Bootskript ausgeführt, ohne dass irgendwelche Fehler ausgegeben werden, aber wenn ich mich über ssh anmelde, sehe ich, dass sie nicht gestartet wurden. Ich führe dann das obige Skript manuell aus und sie starten. Wie kommt es, dass sie nicht mit dem Boot scrpipt beginnen?

Ich habe den folgenden Beitrag gefunden: http://blog.angelbob.com/posts/124 aber ich bin mir nicht sicher, ob es relevant ist.

+0

werden sie als derselbe Benutzer ausgeführt? gleiche Privilegien? – Geo

Antwort

1

Ich entdeckte die Antwort aufgrund des Links zu diesem Blogpost. Das Ruby-Kontrollskript muss einen absoluten Pfad zum Skript haben.

z.B.

#!/usr/bin/env ruby 

require 'rubygems' 
require 'daemons' 

options = { 
    :app_name => "inserttk", 
    :log_output => true, 
    :monitor => true 
} 

Daemons.run('/root/username/inserttk.rb', options)