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 に送信したことがあると思いますが、これは 2 回目の送信です。

シグナルと USR2 に関するユニコーンのドキュメントによると、 「子が稼働中であることが確認されたら、元のプロセスに別の QUIT を送信する必要があります。」

この特定のケースでは、古い PID を渡して kill します

kill -s QUIT 23820

または、この古い PID が「現在の」PID と一緒に既知のファイル (エラー メッセージで参照) に保存されているという事実を利用して、次のコマンドを実行できます。

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