質問

私は、ec2 on railsで作成されたec2インスタンスで実行するたびに取得しようとしています。

Capistranoでデプロイすると、crontabが書き込まれたことが示されますが、サーバーにログインしてcrontab -lを実行すると、変更されていないようです。

リリースフォルダーに移動し、--write-crontabを実行するたびに手動で実行すると、crontab -lを実行します。正しく更新されます。

これを引き起こす原因は何ですか?

Capistranoはエラーを示していないので、デバッグ方法がわからず、10億の順列と組み合わせを試してみましたが、何も変わりません。

役に立ちましたか?

解決 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 deployファイルでcapistranoコマンドを要求するだけでよいはずです:

「whenever / capistrano」が必要

バンドラーを使用している場合は、これも追加する必要があります:

set:whenever_command、 'bundle exec when'

これはOPとは関係ありませんが、この issue 、Capistrano 2.11によると1は、問題を修正するために0.7.3が必要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top