私は Ruby on Rails を初めて使用し、それを使用して小さな DemoApp を構築しています。このアプリは、ネットワーク データを収集し、データベースに保存します。このタスクは毎分ごとに実行されます。これを Ubuntu で開発およびテストしたところ、問題なく動作しました。
さて、このアプリを Raspberry Pi にデプロイしたいと思います。その上にrvm、ruby、railsなどをインストールし、railsサーバーを起動しました。不思議なことに、ネットワーク データを収集して保存するバックグラウンド ジョブが機能していないように見えました。だから私は自分でそれを実行し、これを得ました:
script/rails runner -e development 'LogEntry.updateRecords'
/home/user/.rvm/gems/ruby1.9.3-p374/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.so: [BUG] Segmentation fault
ruby 1.8.7 (2012-02-08 patchlevel 358) [arm-linux-eabihf]
「レールコンソール」を使用している場合、LogEntry.update は再び完全に正常に動作します。
スケジュール.rb:
every 1.minute do
runner "LogEntry.updateRecords", :environment => :development
end
結果の crontab エントリ:
# Begin Whenever generated tasks for: store
PATH=/home/user/.rvm/gems/ruby-1.9.3-p374/bin:/home/user/.rvm/gems/ruby-1.9.3-p374@global/bin:/home/user/.rvm/rubies/ruby-1.9.3-p374/bin:/home/user/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
* * * * * /bin/bash -l -c 'cd /home/user/WhoIsOnline/AWE13-Exercise-1 && script/rails runner -e development '\''LogEntry.updateRecords'\'''
# End Whenever generated tasks for: store
ルビー -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [arm-linux-eabihf]
さまざまな rvm 設定と Google 検索を行った後、皆さんが私を助けてくれることを願っています。