2009-07-31 5 views
0

J'utilise Rightscale pour lancer une instance sur Amazon EC2. Tous mes scripts de démarrage fonctionnent très bien et font des choses comme obtenir les noms de fichiers ci-dessous dans les dossiers. Le dernier script de démarrage est la suivante:Comportement très étrange lors du lancement des démons Ruby à partir du script bash au démarrage

#!/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 

Je veux l'utiliser pour commencer mes daemons que j'ai écrit en Ruby. Il est exécuté en tant que script de démarrage sans aucune erreur, mais lorsque je me connecte via ssh, je vois qu'ils n'ont pas été démarrés. Je lance ensuite le script ci-dessus manuellement et ils commencent. Comment se fait-il qu'ils ne commencent pas avec le boot scrpipt?

J'ai trouvé le post suivant: http://blog.angelbob.com/posts/124 mais je ne suis pas sûr que ce soit pertinent.

+0

sont-ils exécutés en tant que le même utilisateur? mêmes privilèges? – Geo

Répondre

1

J'ai découvert la réponse en raison du lien vers ce billet de blog. Le script de contrôle Ruby doit avoir un chemin absolu vers le script.

par exemple.

#!/usr/bin/env ruby 

require 'rubygems' 
require 'daemons' 

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

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