Ruby on Rails3 サーバーリスタートを管理画面で行う

今回はサーバーをリスタートしてみました。
何らかの時にサーバーをリスタートしたい時にそれが管理画面からできたら凄く便利です。
そこで前回ファイルアップロードをしたのでその中についでにリスタートボタンを追加してみました。
まずはroutes.rbの修正でrestart_serverをgetに追加します。
その後にnewに以下の様に追加します。

<%= button_to 'リスタート', {:action => :restart_server}, :method => :get %>

名前をrestart_serverにしfile_touchを行っています。
リスタートが完了したらメッセージの出力を行っています。

def restart_server
    file_touch
    flash[:warning] = 'リスタートしました'
    redirect_to params[:from] || :administrator_files
end

ここで重要なのはfilepath = "../../restart/tmp/restart.txt"です。ようはrestart.txtを書き換えればいいので、filepathで先ほどと同じように書き換えます。f=からcloseまでは前回のアップロードと同じです。これはシンボリックリンクを活用し直接書き換えている。

def file_touch
    filepath = "../../restart/tmp/restart.txt"

    f = File.open(filepath, "wb")
    f.write('')
    f.close

    return
end

リスタートできました。