我一直試圖讓每當運行在ec2在軌道上創建一個ec2實例。javan-每當不寫cisttab與卡皮斯特拉諾部署
當我用Capistrano進行部署時,它表示crontab已寫入,但是當我登錄到服務器並運行crontab -l時,它似乎沒有被更改。
如果我進入release文件夾並手動運行--write-crontab然後運行crontab -l - 它會得到正確更新。
任何想法可能導致這種情況?
Capistrano不表示任何錯誤,所以不知道如何調試,嘗試了十億個排列組合和沒有任何變化。
我一直試圖讓每當運行在ec2在軌道上創建一個ec2實例。javan-每當不寫cisttab與卡皮斯特拉諾部署
當我用Capistrano進行部署時,它表示crontab已寫入,但是當我登錄到服務器並運行crontab -l時,它似乎沒有被更改。
如果我進入release文件夾並手動運行--write-crontab然後運行crontab -l - 它會得到正確更新。
任何想法可能導致這種情況?
Capistrano不表示任何錯誤,所以不知道如何調試,嘗試了十億個排列組合和沒有任何變化。
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選項可以幫助解決這個問題。
你應該能夠只是在你的帽子部署文件要求,只要Capistrano的命令,像這樣:
需要「每當/ Capistrano的」
如果你使用捆綁,則需要添加這還有:
集:whenever_command,「捆綁EXEC一旦」
這是不相關的OP,但根據本issue,Capistrano的2.11.1需要每當0.7.3,以解決該問題。
可以肯定的是,你檢查合適用戶的cron作業嗎?例如,您以root身份登錄,但您的應用程序正在以部署方式運行。檢查這個,例如通過運行`sudo crontab -l -u deploy`。 – 2014-08-06 03:24:50