6

'Ho creato un cron con wehenever, ma non funziona. Ho provato a eseguire il comando manualmente e ottengo l'errore /bin/bash: bin/rails: Permission denied.Ogni volta che Cron non funziona? Autorizzazione negata

Ecco ciò che il comando della cron assomiglia:

/bin/bash -l -c 'cd /var/www/domain.net/main && bin/rails runner -e production '\''User.weekly_update'\'''

Ho anche cercato di eseguire questo comando come root ma ho ottenuto lo stesso messaggio.

risposta

6

cercare di rendere bin/rotaie eseguibile:

chmod u+x bin/rails 

Questa è, ovviamente, partendo dal presupposto che bin/rotaie è di proprietà dell'utente del crontab.

+0

Quella era la soluzione>.

2

Ho trovato che l'uso di RVM può complicare questo. Una valida alternativa è quella di rendere il vostro lavoro ogni volta in un rake lavoro invece di un lavoro runner:

every 7.days do 
    rake "user:weekly_update" 
end 

Ciò, ovviamente, richiederà un po 'più di codice nella directory lib/task:

namespace :user do 
    task :weekly_update=> :environment do 
    User.weekly_update 
    end 
end 
0

Ho avuto lo stesso problema e risolto in questo modo:

(lavoro iam con rvm e le mie */bin/rails ha già + rx privilegi)

Come si può vedere nel whenever-github è possibile modificare tipo_impiego entro config/schedule.rb

job_type :runner, "cd :path && /other-path/path-x/bin/rails runner -e :environment ':task' :output"