ruby-on-rails - 在 ubuntu 启动时运行 rake 任务

标签 ruby-on-rails ubuntu amazon-ec2 rake

嗨,我在设置 rake 任务以在 Amazon EC2 上的 ubuntu 实例启动/重新启动时运行时遇到了一些麻烦。

我需要让我的实例在启动新实例时启动一个简单的延迟作业“rake jobs:work”命令,而无需使用 ssh 登录并手动运行该命令。问题是 - 我无法让它执行命令。它在终端上运行良好,但在启动时无法自行运行。我已尝试按照 this link 中的说明进行操作,但似乎没有任何效果。

我在一个 Natty 11.04 实例上,我已经通过 rvm 安装了 ruby​​ 和 gems。

最佳答案

您需要在 bash 脚本中调用如下所示的内容:

su - deploy -c "cd $RAILS_ROOT && rake RAILS_ENV=development jobs:work" >> $RAILS_ROOT/log/myjob.log 2>&1

然后从/etc/init.d/mystartup_filename 调用它。该文件可能类似于:
#! /bin/sh
RAILS_ROOT="/home/deploy/rails_root"
ENV="development"

case "$1" in
    start)
    echo -n "Starting my job: "
    su - deploy -c "cd $RAILS_ROOT && rake RAILS_ENV=$ENV jobs:work" >> $RAILS_ROOT/log/myjob.log 2>&1
    echo "done."
    ;;
    stop)
    echo -n "Stopping my job: "
    su - deploy -c "cd $RAILS_ROOT && rake RAILS_ENV=$ENV jobs:stopwork" >> $RAILS_ROOT/log/myjob.log 2>&1
    echo "done."
    ;;
    *)
    echo "Usage: $N {start|stop}" >&2
    exit 1
    ;;
esac

exit 0

关于ruby-on-rails - 在 ubuntu 启动时运行 rake 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6207335/

相关文章:

ruby-on-rails - 无法将实例方法添加到 Ruby-on-Rails 模型

c# - 在 Mono 中使用 UnixSignal 会引发 System.ArgumentException

python - Virtualbox Ubuntu pygame.display.set_mode 在交互式 python 中的行为与解释文件时的行为不同

linux - Apache - 排除本地网络以重定向 HTTPS

php - Amazon Web Services 上的 PHP Web 应用程序服务器层之间的通信

hadoop - 在3个AWS EBS EC2实例上安装Cloudera

ruby-on-rails - 是否有更好的 Ruby 或 Rails 习惯用法来检查嵌套哈希中是否存在值?

css - rails : Problems with Asset Pipelin/SASS

git - 为 ec2 设置 git 部署过程

textmate - Text Mate 中的 Bundler Gemfile 语法高亮显示