我正在尝试使用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
由于
答案 0 :(得分:8)
我今天遇到了这个。我假设您之前已经将USR2发送给独角兽,现在这是您第二次尝试这样做。
根据unicorn documentation on signals和USR2:“一旦确认孩子已启动并正在运行,应将单独的QUIT发送到原始流程。”
在这种特殊情况下,你会传递旧的PID来杀死
kill -s QUIT 23820
或者,您可以利用这个旧PID存储一个已知文件(在您的错误消息中引用)和“当前”PID的事实,然后执行:
kill -s QUIT `cat /home/user/app.git/tmp/unicorn.pid.oldbin`