2009-07-31 6 views
0

私はRightscaleを使用してAmazon EC2でインスタンスを起動しています。私のブートスクリプトはすごくうまく動作し、フォルダー内に以下のファイル名が入るようにします。起動時にbashスクリプトからRubyデーモンを起動すると非常に奇妙な動作が発生する

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

私はRubyで書いた私のデーモンを起動するためにそれを使用する:最後の起動スクリプトは次のようです。それはエラーの出力なしでブートスクリプトとして実行されますが、私がssh経由でログインすると、起動されていないことがわかります。私は手動で上記のスクリプトを実行し、それらが起動します。 どうして彼らはブートscrpiptで始まっていませんか?

私は次の投稿を見つけました:http://blog.angelbob.com/posts/124しかし、それが適切かどうかはわかりません。

+0

同じユーザーとして実行されていますか?同じ特権? – Geo

答えて

1

私はそのブログ記事へのリンクのために答えを発見しました。 Rubyの制御スクリプトには、スクリプトへの絶対パスが必要です。

#!/usr/bin/env ruby 

require 'rubygems' 
require 'daemons' 

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

Daemons.run('/root/username/inserttk.rb', options) 
関連する問題