unicornの再起動 | Rails5 + unicorn + capistrano + Nginx

Railsアプリを本番環境にデプロイしたときに、デプロイした内容が反映されないことがある。それは、開発環境で”rails s”をし直す、つまりRailsサーバーを止める必要があるのと同様に、本番環境でも一度Railsを停止させ起動する必要がある。さて、本番環境でRails自体を再起動させるにはどうしたらよいのか。unicornを再起動すればよいのだ。その再起動方法を記す。

unicornを再起動するには

調べてみると、unicornを再起動させる方法はいくつかあるようだ。

“-HUP”オプションによる再起動

こちらは普通のunicorn再起動方法。一つのコマンドで再起動完了。以下の”-USR2″オプションとは異なって、Railsアプリケーションは一時的に止まり、再度起動される。

“-USR2″オプションによる再起動

この方法は、こちらのサイトによるとunicornの旧プロセスを保持したまま、unicornの新プロセスを起動するという方法のようだ。つまり、Railsアプリケーションの起動を保持したまま、新しいプロセスを裏で起動させるという意味かと思われる。ただし、この方法だと当然ながら保持された旧プロセスが残るので、それを停止させる必要がある。また、完全に再起動できるわけではないようなので、デプロイした内容が反映されない部分があるかもしれない。

手動で停止させ手動で起動する

私はこの方法でunicornの再起動をおこなっている。一度unicornのプロセスを停止する。そして、”bundle”コマンドを利用してunicornを起動させる。こちらの方法は確実にunicornを停止させるので、デプロイした内容が反映されやすい。ただ、コマンドを3回打つ必要がある点がデメリットだ。

共有する

このエントリーをはてなブックマークに追加

コメントをする

メールアドレスが公開されることはありません。
*のついている項目は必須です。


*