我正在尝试使用 USR2 信号重新加载 unicorn ,但我在日志中收到以下错误:
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
我已经在互联网上搜索过,但没有任何线索。似乎 unicorn 正在尝试写入pid文件?我正在发出
kill -s USR2 PID
谢谢
最佳答案
我今天遇到了这个。我假设您之前已将 USR2 发送给 unicorn ,现在这是您第二次尝试这样做。
每 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`
关于ruby-on-rails - unicorn 没有用 USR2 重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148588/