Question

J'essaie de le faire à chaque fois qu'il s'exécute sur une instance ec2 créée avec ec2 sur des rails.

Lorsque je déploie avec Capistrano, cela indique que la crontab a été écrite, mais lorsque je me connecte au serveur et que je lance crontab -l, il ne semble pas avoir été modifié.

Si je vais dans le dossier de publication et que je lance manuellement à chaque fois --write-crontab puis exécuter crontab -l - il est mis à jour correctement.

Des idées sur ce qui pourrait être la cause?

Capistrano n’indique aucune erreur, aussi vous ne savez pas comment déboguer, vous avez déjà essayé un milliard de permutations et de combinaisons et rien ne change.

Était-ce utile?

La solution 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

Ou, apparemment, il existe également une option -user à chaque fois que cela peut aider.

Autres conseils

vous devriez pouvoir simplement demander la commande chaque fois que capistrano dans votre fichier de déploiement cap comme suit:

besoin de 'chaque fois que / capistrano'

si vous utilisez un bundle, vous devrez également ajouter ceci:

set: when_command, 'bundle exec when' '

Cela n'a rien à voir avec OP mais selon ce numéro , Capistrano 2.11. 1 doit avoir besoin de 0.7.3 pour résoudre le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top