Icon kobu medium
Kota Miyake

cronが動かない原因を探る

個人的に作成しているRailsアプリで、cronを使ってタスクを実行しようとしたのですが、うまくいかないので原因を調べてみました。

cronの実行ログを確認してみると実行はされているようでした。

$ sudo tail -f /var/log/cron.log

どうやらタスク自体の実行がうまくいっていない様子。

cronのログはcron自体が実行できたかどうかしか出力しないということなので、標準エラーをファイルに書き出すよう設定して確認することにします。

$ command 2>> /tmp/cron-error.log

無事?出力されたエラーを確認してみると、どうやらgemへのパスが上手く通っていないということがわかりました。

/bin/bash: bundle: コマンドが見つかりません

タスクの実行前にrbenvを初期してあげる必要があるみたいです。

job_type :rake, "export PATH=\"$HOME/.rbenv/bin:$PATH\"; eval \"$(rbenv init -)\"; cd :path && RAILS_ENV=:environment bundle exec rake :task --silent :output”

これで無事タスクが実行されました。

コメント
新しいコメント