
先日「[言語][Ruby][Webサービス]mixi エコー改め mixi ボイスへ twitter ポスト」という記事を書いて実際に試してみたものの、いざ CORESERVER にて cron の設定をしてみても動作しない。
試しにローカルの Cent OS で同様のことを試してみましたが、やはり動作せず。
色々試行錯誤してみた結果、小手先の小細工が必要なことが発覚。今のところ Ruby でしか発生していないけども、今後発生しないとも限らないので覚えていて損はないかなと。
rb を実行する sh を書く
#!/bin/sh
cd /絶対パス/
/usr/local/bin/ruby /絶対パス/mixiEchoBot.rb > /dev/null 2>&1
sh を実行する crontab を書く
*/5 * * * * /絶対パス/mixiEchoBot.sh
ローカルでは上記だけで十分だったのですが、CORESERVER では更に crontab へ小手先の小細工が。
各環境変数を crontab に書く
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/local/mysql/bin:/usr/local/mysql/libexec:/usr/local/pgsql/bin
RAILS_ENV=production
RUBYLIB=/usr/local/lib
GEM_HOME=/usr/local/lib/ruby/gem
PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/local/mysql/bin:/usr/local/mysql/libexec:/usr/local/pgsql/bin
RAILS_ENV=production
RUBYLIB=/usr/local/lib
GEM_HOME=/usr/local/lib/ruby/gem
各パスなど(/usr/local/bin/ など)は、適宜自身の環境に合わせて修正してください。
やっと動いた……。
official.[mixi]