thinサーバをプロセス別に再起動させる方法
自分用メモ。
サーバ上で起動させているThinサーバを再起動させたい場合、
$ thin -C thin.yaml restart
と行うと、yamlでthinのプロセスが常駐する様に設定していた場合、一度全部のプロセスを閉じた後、設定数分のプロセスの起動が行われるため、接続が不可能な状態が一瞬生じます。
せっかく複数プロセスが稼働しているのであれば、一つずつのプロセスで再起動がかけられればよいので、方法を調べたところ --onebyone というオプションを付与することで実現できました。
$ thin -C thin.yaml --onebyone restart
といった具合。
こうすると、以下の様に個々のプロセスの停止と起動が繰り返されます。
$ thin -C thin.yaml --onebyone restart Stopping server on 0.0.0.0:4040 ... Sending QUIT signal to process 12835 ... >> Waiting for 1 connection(s) to finish, can take up to 30 sec, CTRL+C to stop now >> Exiting! Starting server on 0.0.0.0:4040 ... Waiting for server to start ... Stopping server on 0.0.0.0:4041 ... Sending QUIT signal to process 12846 ... Starting server on 0.0.0.0:4041 ... Waiting for server to start ... (以下略)