2009-06-17 74 views
4

我一直試圖讓每當運行在ec2在軌道上創建一個ec2實例。javan-每當不寫cisttab與卡皮斯特拉諾部署

當我用Capistrano進行部署時,它表示crontab已寫入,但是當我登錄到服務器並運行crontab -l時,它似乎沒有被更改。

如果我進入release文件夾並手動運行--write-crontab然後運行crontab -l - 它會得到正確更新。

任何想法可能導致這種情況?

Capistrano不表示任何錯誤,所以不知道如何調試,嘗試了十億個排列組合和沒有任何變化。

+1

可以肯定的是,你檢查合適用戶的cron作業嗎?例如,您以root身份登錄,但您的應用程序正在以部署方式運行。檢查這個,例如通過運行`sudo crontab -l -u deploy`。 – 2014-08-06 03:24:50

回答

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選項可以幫助解決這個問題。

1

你應該能夠只是在你的帽子部署文件要求,只要Capistrano的命令,像這樣:

需要「每當/ Capistrano的」

如果你使用捆綁,則需要添加這還有:

集:whenever_command,「捆綁EXEC一旦」

0

這是不相關的OP,但根據本issue,Capistrano的2.11.1需要每當0.7.3,以解決該問題。