sinataraサーバーをEC2の起動時に自動的に起動して、
さらにTwitterのStreaming APIを監視するRubyプログラムも同時起動するのに一苦労。
– chkconfigで起動するシェル (td_aircon) を作成
$sudo su # cd /etc/init.d/ # touch td_aircon # chmod 755 td_aircon # vim td_aircon
td_airconの内容
#!/bin/sh # chkconfig: 2345 99 10 # description: launch TD_AIRCON sinatra server export RBENV_ROOT=/usr/local/rbenv export PATH="$RBENV_ROOT/bin:$PATH" eval "$(rbenv init -)" cd /home/ec2-user/aircon/aircon-api/ thin start -C thin.yml ruby tweet_checker.rb
今回は、thinを使ってsinatraサーバーを起動するので、以下のファイルを作る。
$ cd ~/aircon/aircon-api/ $ touch config.ru $ vim config.ru
config.ruの中身
require 'rubygems' require 'sinatra' require File.expand_path "app", File.dirname(__FILE__) run Sinatra::Application
thinの設定ファイルをつくる
$ cd ~/aircon/aircon-api/ $ thin config -C thin.yml
出来た thin.yml の中身のポート番号を変更
--- chdir: /home/ec2-user/aircon/aircon-api environment: development address: 0.0.0.0 port: 4567 timeout: 30 log: log/thin.log pid: tmp/pids/thin.pid max_conns: 1024 max_persistent_conns: 100 require: [] wait: 30 daemonize: true
自動起動をchkconfigに設定・確認する
# cd /etc/init.d/ # chkconfig --add td_aircon # chkconfig --list