我一直试图在使用ec2在rails上创建的ec2实例上运行。

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

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

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

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

有帮助吗?

解决方案 2

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选项。

其他提示

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

要求'when / capistrano'

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

set :never_command,'when exec when'

这与OP无关,但根据此问题,Capistrano 2.11。 1需要每当0.7.3以解决问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top