2012-12-11 11 views
6

Wysyłam sygnał USR2 do głównego procesu, aby uzyskać zerowy czas przestoju z jednorożcem. Po stary mistrz nie żyje, ja otrzymuję następujący błąd:Jednorożec nie spawnuje robotników na sygnale USR2

adding listener failed addr=/path/to/unix_socket (in use) 

unicorn-4.3.1/lib/unicorn/socket_helper.rb:140:in `initialize': 
Address already in use - /path/to/unix_socket (Errno::EADDRINUSE) 

Stary mistrz ginie w bloku before_fork na unicorn.rb pliku konfiguracyjnym. Proces jest uruchamiany za pośrednictwem usługi upstart bez opcji demona (-D). Jakieś pomysły na temat tego, co się dzieje?

+0

Cam podzielić blok before_fork z unicorn.rb? – pschuegr

Odpowiedz

2

Cóż, okazuje się, że musisz uruchomić tryb demona (-D), jeśli chcesz mieć możliwość wykonania zerowego wdrożenia. Zmieniłem kilka rzeczy w moim upstart skrypcie i teraz działa dobrze:

setuid username 
pre-start exec unicorn_rails -E production -c /path/to/app/config/unicorn.rb -D 
post-stop exec kill cat `/path/to/app/tmp/pids/unicorn.pid` 
respawn 
Powiązane problemy