unicorn, rails, and symlinked deployment

Michael Guterl mguterl at gmail.com
Tue Nov 17 17:08:46 EST 2009


On Tue, Nov 17, 2009 at 12:50 PM, Michael Guterl <mguterl at gmail.com> wrote:
> First let me say thanks for Unicorn, it has helped us fill a gap that
> Passenger could not fill.
>
> Like many using Rails, we use capistrano for deployment.  At the end
> of each deployment we use the standard capistrano deploy:cleanup task
> to remove old releases.  Everything is fine until we cleanup the
> release directory from which unicorn_rails was originally launched.
> When this happens we get an error in our unicorn error log.
>
> reloading config_file=/home/deploy/public_html/rm/releases/20091116213921/config/unicorn.rb
> error reloading
> config_file=/home/deploy/public_html/rm/releases/20091116213921/config/unicorn.rb:
> Errno::ENOENT No such file or directory -
> /home/deploy/public_html/rm/releases/20091116213921/config/unicorn.rb
>
> I'm sure I'm not the only who has experienced this.  Does anyone have
> any recommendations for handling this situation?
>

I should also point out that in my unicorn logs when I start the app
it references the path in it's symbolic link form:

I, [2009-11-17T17:06:10.215485 #30857]  INFO -- : unlinking existing
socket=/home/deploy/public_html/rm/current/tmp/sockets/unicorn.sock
I, [2009-11-17T17:06:10.227485 #30857]  INFO -- : listening on
addr=/home/deploy/public_html/rm/current/tmp/sockets/unicorn.sock fd=3
I, [2009-11-17T17:06:10.227485 #30857]  INFO -- : Refreshing Gem list

But when I send HUP to restart, it references the actual path, not the symlink.

reloading config_file=/home/deploy/public_html/rm/releases/20091117215841/config/unicorn.rb
Refreshing Gem list
done reloading config_file=/home/deploy/public_html/rm/releases/20091117215841/config/unicorn.rb

Best regards,
Michael Guterl


More information about the mongrel-unicorn mailing list