Linux ShellScriptのOS起動時起動

/etc/rc.d/rc.local

/usr/local/bin/ruby 立ち上げたいrbファイル
を記述。

今回は以下のwebサービスDaemonを起動した。

def daemon
return yield if $DEBUG
Process.fork do
Process.setsid
Dir.chdir "/"
Signal.trap(:INT){ exit! 0}
Signal.trap(:TERM){ exit! 0}

Signal.trap(:HUP){ exit! 0}
File.open("/dev/null","r+") do |f|
STDIN.reopen f
STDOUT.reopen f
STDERR.reopen f
end
yield
end
exit! 0
end

require 'soap/rpc/standaloneServer'
require '/WSD/soap-server/interest-calculator'

NS='http://pragprog.com/InterestCalc'

class Server2 < SOAP::RPC::StandaloneServer
def on_init
calc=InterestCalculator.new
add_method(calc,'compound','principal','rate','freq','years')
add_method(calc,'call_count')
end
end

svr=Server2.new('Calc',NS,'0.0.0.0',12321)
trap('INT'){ svr.shutdown }

daemon do
svr.start
end


daemon化することで、バックグラウンドで実行できる。(起動後、shellにコマンドが戻ってくる)