Rails,使用Capistrano部署到Unicorn上的VPS

时间:2012-12-05 09:43:34

标签: deployment capistrano unicorn

我需要帮助调试以下问题。这是我第一次部署,但我无法提出解决方案。

  * 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

这是stderr

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

4 个答案:

答案 0 :(得分:4)

看起来你的僵尸Unicorn进程运行的PID不同于init.d记录的PID。我会尝试运行$ ps aux | grep unicorn来查找僵尸进程,然后kill

答案 1 :(得分: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

答案 2 :(得分:1)

我不得不

sudo rm /tmp/unicorn.my_app.sock

sudo /etc/init.d/unicorn_myapp start

答案 3 :(得分:0)

我得到了同样的错误,我修复如下:

  1. SSH到项目部署到的服务器,并运行这些命令
    ps -ef | grep unicorn =>列出独角兽的pid。找到你的unocorn master的进程ID 用上面的pid替换“unicorn.my_app.sock”上的pid。

  2. 尝试再次使用capistrano进行部署。