0

lubuntu 12.10、ruby 1.9.3p374(RVMではない)、Gem 1.8.23、およびRails3.2.11を使用

最近、Whenever gemをインストールして、定期的に実行されるタスクを作成しました。1分ごとに実行するタスクを作成し、次を使用して実行するように設定しました。

whenever --update-crontab myproject --set environment=development

このコマンドは、次のエントリをcrontabに配置します。

* * * * * /bin/bash -l -c 'cd /home/myuser/projects/myproject && script/rails runner -e development '\''FileImporter.execute'\'' >> /home/myuser/projects/myproject/log/cron_log.log 2>&1'

しばらく待った後、同じ例外でcron_log.logファイルにスパムが送信されていることがわかりました。

/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in 'require: cannot load such file -- bundler/script (LoadError)

ただし、ターミナルで次のコマンドを手動で実行すると、すべてが正常に機能します。

/bin/bash -l -c 'cd /home/myuser/projects/myproject && script/rails runner -e development '\''FileImporter.execute'\'' >> /home/myuser/projects/myproject/log/cron_log.log 2>&1'

さらに情報が必要な場合はお知らせください。私はrails/linuxの世界にかなり慣れていないので、いくつかの重要な情報を省略している可能性があります。

4

1 に答える 1

1

同様の質問でここに答えが見つかりました:なぜ#!/ usr / bin / envrubyがcrontabで機能しないのですか?

どうやら、cronジョブの実行時にPATHが設定されていないため、crontabで設定する必要があります。

echo $ PATHを実行して、どのPATHが設定されているかを確認し、crontabファイルの先頭にPATH = / my / path/valuesを配置すると問題が修正されます。

于 2013-02-01T22:49:53.003 に答える