7

我正在尝试使用 USR2 信号重新加载独角兽,但在日志中出现以下错误:

E, [2012-04-13T21:27:00.801192 #24474] ERROR -- : old PID:23820 running with existing pid=/home/user/app.git/tmp/unicorn.pid.oldbin, refusing rexec

我已经搜索了互联网,但没有任何线索。似乎独角兽正在尝试写入 pid 文件?我正在发布一个kill -s USR2 PID

谢谢

4

1 回答 1

8

我今天遇到了这个。我假设您之前已将 USR2 发送给 unicorn,现在这是您第二次尝试这样做。

根据关于信号和 USR2 的独角兽文档:“一旦验证子进程已启动并运行,则应将单独的 QUIT 发送到原始进程。”

在这种特殊情况下,您将传递旧的 PID 来杀死

kill -s QUIT 23820

或者,您可以利用这个旧 PID 与“当前”PID 一起存储一个已知文件(在错误消息中引用)这一事实,并执行:

kill -s QUIT `cat /home/user/app.git/tmp/unicorn.pid.oldbin`
于 2012-04-18T23:28:48.020 回答