サービスの起動&停止方法
アプリのパラメータ変更したとしてもサービスに登録したヤツを止めたり、停止したり、殺したり、動かしたり出来ないと運用できないよなぁ〜
って事で、サービスの起動&停止方法のメモ
Windowsにも対応してる模様(ためしてな〜い)
recipe内で普通にサービスを動かす方法
service "example_service" do action :start end
これ、そのまま何も考えずに動かすと一回動いてるやつだとエラーにならないか?みたいな場合は↓こっちで
service "example_service" do action :restart end
recipe内で普通にサービスを止める方法
service "example_service" do action :stop end
こっちは止めるので動いてなければ大丈夫な・・・はず
recipeの途中でサービスを再起動する予約をする方法
実はこれの方が使うんじゃ無いか?って気がする
ファイルの更新があったときだけサービスを再起動したりする場合
template "authorized_ip" do path "#{node['nginx']['dir']}/authorized_ip" source "modules/authorized_ip.erb" owner "root" group "root" mode 00644 variables( :remote_ip_var => node['nginx']['remote_ip_var'], :authorized_ips => node['nginx']['authorized_ips'] ) notifies :reload, resources(:service => "nginx") end
最後の方にある:reloadを:restartにするとOK
これで常にreloadされるんじゃ無くて必要なときだけ実行される。
一個のrecipeの中に複数個のnotifies :reload, resources(:service => "nginx")があったとしても一回だけ実行される
これを見てるとちゃんとサービスに登録した方がメリット大きいよなぁ〜って思った。
参考
全部ここに載ってるので、詳しくはそちらで
http://docs.opscode.com/resource_service.html
感想
OS毎の違いとかが結構ある部分なのにそれを吸収してるのが良いなぁ〜
自作アプリをサービスにしないとこのメリットが受けれないのはちょっと残念だけど仕方の無いところかな