I'm running unicorn and am trying to get zero downtime restarts working.

So far it is all awesome sauce, the master process forks and starts 4 new workers, then kills the old one, everyone is happy.

Our scripts send the following command to restart unicorn:

kill -s USR2 `cat /www/app/shared/pids/unicorn.pid`

On the surface everything looks great, but it turns out unicorn isn't reloading production.rb. (Each time we deploy we change the config.action_controller.asset_host value to a new CDN container endpoint with our pre-compiled assets in it).

After restarting unicorn in this way the asset host is still pointing to the old release. Doing a real restart (ie: stop the master process, then start unicorn again from scratch) picks up the new config changes.

preload_app is set to true in our unicorn configuration file.

Any thoughts?

Edit
Report