2012-12-05 196 views
1

我需要幫助調試以下問題。這是我第一次部署,而且我還沒有能夠想出解決方案。Rails,用Capistrano在Unicorn上部署到VPS

* 2012-12-05 18:37:44 executing `deploy:start' 
    * executing "/etc/init.d/unicorn_blog start" 
executing command 
/etc/init.d/unicorn_blog: 24: kill: No such process 
master failed to start, check stderr log for details 

這裏的標準錯誤

/.../unicorn/socket_helper.rb:140:in `initialize': Address already in use - /tmp/unicorn.my_app.sock (Errno::EADDRINUSE) 
+0

你怎麼找到標準錯誤? –

回答

4

它看起來像你有一個殭屍獨角獸過程與從由init.d.記錄的一個不同的PID運行我會試着運行$ ps aux | grep unicorn找到殭屍進程,然後kill吧。

2

不確定它是如何工作的,但下面的解決方案實際工作。

lsof /tmp/unicorn.my_app.socket 

列出的PID

kill -9 pid 

(替換 'PID' 與其中的一箇中列出)

Then cap deploy:start from the local terminal. 

源:Unicorn/Nginx process missing, socket open

1

我不得不

sudo rm /tmp/unicorn.my_app.sock 

sudo /etc/init.d/unicorn_myapp start 
0

我得到了同樣的錯誤,我固定如下:

  1. SSH服務器在您的項目部署到,並運行這些命令的
    ps -ef | grep unicorn =>列表PID獨角獸。找到您的unocorn主進程ID。
    用上面的pid替換「unicorn.my_app.sock」上的pid。

  2. 嘗試與Capistrano的重新部署。

相關問題