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
リスタートできました。