javan-每当没有用Capistrano部署编写crontab时

时间:2009-06-17 17:40:29

标签: ruby-on-rails cron capistrano whenever-capistrano

每当在使用ec2在rails上创建的ec2实例上运行时,我一直试图获得。

当我使用Capistrano进行部署时,它表示已写入crontab,但是当我登录服务器并运行crontab -l时,它似乎没有被更改。

如果我进入release文件夹并手动运行--write-crontab然后运行crontab -l - 它会正确更新。

任何可能导致这种情况的想法?

Capistrano没有表明任何错误,所以不确定如何调试,尝试过十亿次排列和组合,没有任何变化。

3 个答案:

答案 0 :(得分:1)

您应该只需要在cap部署文件中随时执行capistrano命令,如下所示:

要求'when / capistrano'

如果你正在使用bundler,你还需要添加它:

set :never_command,'when exec when'

答案 1 :(得分:0)

namespace :deploy do
  desc "write the crontab file"
  task :write_crontab, :roles => [:db_admin] do  
    run "cd #{release_path} && sudo -u root  whenever --write-crontab #{application}"
  end  
end

或者,只要能够帮助解决这个问题,显然还有一个-user选项。

答案 2 :(得分:0)

这与OP无关,但根据此issue,Capistrano 2.11.1需要每当0.7.3才能解决问题。