Following is link to my init script for unicorn. https://gist.github.com/1466775
Restart command has never worked for me. I am using upgrade to restart unicorn after eac
According to your init script, "/bin/init.d/unicorn restart" sends HUP signal to unicorn master process
------cropped
restart|reload)
sig HUP && echo reloaded OK && exit 0
echo >&2 "Couldn't reload, starting '$CMD' instead"
su - $USER -c "$CMD"
-----cropped
This is what HUP does to unicorn process :
reloads config file and gracefully restart all workers. If the “preload_app” directive is false (the default), then workers will also pick up any application code changes when restarted. If “preload_app” is true, then application code changes will have no effect.
What you are looking for is USR2 signal which your upgrade parameter to unicorn is already doing !
USR2 signal re-executes the running binary. A separate QUIT should be sent to the original process once the child is verified to be up and running.