0

我正在使用 Rightscale 在 Amazon EC2 上启动一个实例。我所有的启动脚本都运行良好,并且可以在文件夹中获取以下文件名。最后的启动脚本如下:

#!/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 登录时,我发现它们尚未启动。然后我手动运行上面的脚本,它们就开始了。他们为什么不从引导脚本开始?

我找到了以下帖子:http ://blog.angelbob.com/posts/124但我不确定它是否相关。

4

1 回答 1

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)
于 2009-07-31T10:43:27.877 回答