2009-06-17 9 views
4

Ich habe versucht, immer wenn auf einer ec2-Instanz ausgeführt wird, die mit ec2 auf Schienen erstellt wurde.javan-wann immer nicht schreiben crontab mit Capistrano deploy

Wenn ich mit Capistrano auftrage zeigt es an, dass die crontab geschrieben wurde, aber wenn ich mich beim Server anmelde und crontab -l starte, scheint es nicht geändert worden zu sein.

Wenn ich in den Release-Ordner gehe und manuell jedes Mal ausführen --write-crontab dann crontab -l ausführen - wird es richtig aktualisiert.

Irgendwelche Ideen, was könnte das verursachen?

Capistrano zeigt keine Fehler so nicht sicher, wie zu debuggen, haben versucht, eine Milliarde Permutationen und Kombinationen und nichts ändert.

+1

Nur um sicher zu sein, überprüfen Sie die Cron-Jobs des richtigen Benutzers? ZB loggen Sie sich als root ein, aber Ihre App läuft als deploy. Überprüfen Sie dies z.B. indem Sie 'sudo crontab -l -u deploy' ausführen. –

+0

Danke für den Tipp @ SSidelnikov! Ich habe diese Frage vor fünf Jahren gestellt! Wahrscheinlich hätte ich markieren sollen, dass meine eigene Antwort zu der Zeit angemessen war, war zu der Zeit neu für Stack Overflow. –

Antwort

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 

Oder es gibt auch scheinbar eine Option, wenn immer dies helfen kann.

1

Sie sollten in der Lage sein, zu verlangen, nur die, wenn Capistrano-Befehl in der Kappe deploy-Datei wie folgt:

erfordern ‚wenn/Capistrano‘

wenn Sie bundler verwenden, müssen Sie hinzufügen dies auch:

Satz: whenever_command, ‚Bündel exec, wenn‘

0

Dies ist nicht auf OP verwandt, aber nach diesem issue, Capistrano 2.11.1 Bedürfnisse Jedes Mal, wenn 0.7.3, um das Problem zu beheben.

Verwandte Themen