私のプロダクションサーバーではユニコンにはちょっと変わった問題があります。 configファイルはpreload_appをtrueに設定していますが、USR2をマスタプロセスに送信しても応答は生成されず、ユニコーンがシグナルを完全に無視しているようです。 USR2を送信している別のサーバーでは、マスタプロセスが(古い)状態に変更され、新しいマスタプロセスが正常に開始されます。 問題のあるサーバーはRVM & bundlerを使用しているので、何とか関連していると思います(もう1つはバニラのルビーです)。 USR2(QUIT、HUP)以外の信号を送信しても問題ありません。 ここで何が起こっているのかを追跡する方法はありますか? Unicornのログファイルは完全に空です。ユニコーンはUSR2信号を完全に無視します
答えて
私のVDSで同様の問題が発生しました。 Strace'ingは、原因を明らかにした:
write(2, "E, [2011-07-23T04:40:27.240227 #19450] ERROR -- : Cannot allocate memory - fork(2) (Errno::ENOMEM) <...>
は後者を通じていくつかの深刻な不要な側面を有していてもよく、(彼らは私の場合にはあまりにもハードだった)、メモリサイズを増やし、需要制限に関するXENメモリを試してみてください、または多分overcommitをオンにエフェクトは慎重に行ってください。
私は同様の問題を経験しましたが、ログではUSR2を送信すると最初はデプロイメントが行われますが、デプロイメントがクリーンアップされると、Unicornマスターが最初に開始したリリースが削除されるため、 USR2信号を送信する旨のエラーログで、/失敗何もしないように思われる:
フォークした子を再実行... 53 の/ var/www /のアプリケーション/リリース/ 153565b36021c0b8c9cbab1cc373a9c5199073db /ベンダー/バンドル/ルビー/1.9.1/gems/unicorn-4.3.1/lib/unicorn/http_server.rb:439:in `exec ':そのようなファイルやディレクトリはありません - /var/www/application/releases/153565b36021c0b8c9cbab1 cc373a9c5199073db /ベンダー/バンドル/ルビー/ 1.9.1/binに/ユニコーン (ERRNO :: ENOENT)
ユニコーンドキュメントはhttp://unicorn.bogomips.org/Sandbox.htmlで、この潜在的な問題に言及:「古いリビジョンをクリーンアップするの改正固有のインストールが発生します私の場合はUSR2が「何もしない」と思われることを意味していました。
私はChefのアプリケーションレシピを使用してアプリケーションを配備していますが、配布されたベンダー_バンドルディレクトリを作成しますが、bundle exec unicorn
を呼び出すと、特定のリリースディレクトリを含む元のUnicornマスターがパス参照を保持します。
これを修正するには、bundle exec /var/www/application/shared/vendor_bundle/ruby/1.9.1/bin/unicorn
に電話して、Unicornマスターに、ある展開から次の展開に有効なバイナリへのパスがあることを確認しなければなりませんでした。それが完了したら私は心のコンテンツを私に配備することができ、kill -USR2 PID
は宣伝されたとおりに動作します。
ユニコーンのドキュメントを手動でユニコーンの設定ファイルに次のように設定して、新しいマスターをフォークするUSR2を送信する前にユニコーンをリロードするためにHUPを送信することによって、バイナリのパス参照を変更することができます言及:Unicorn::HttpServer::START_CTX[0] = "/some/path/to/bin/unicorn"
おそらく、これは便利です同様の状況ではいくつかの人には、私はこれを実装していない共有されているユニコーンバイナリへの絶対パスを指定するように見えたので十分です。
あなたのGemfileが変更されているがUSR2が新しいGemfileを使用できるようにユニコンを起動していない可能性があります。したがって、アプリを再起動しようとするとクラッシュすることになります。
詳細については/log/unicorn.log
を確認してください。あなたはカピストラーノを使用している場合は、シンボリックリンクとしてBUNDLE_GEMFILEを指定
、例えば:
run "cd #{current_path} && BUNDLE_GEMFILE=#{current_path}/Gemfile bundle exec unicorn -C#{config_path} -E #{unicorn_env} -D"
Here's a PRこれをdemostrates。
私はいつもこれを新しいunicornデプロイメントで忘れてしまいます。 'before_exec {| server | ENV ["BUNDLE_GEMFILE"] = "#{app_path} /現在/ Gemfile"} ' – Adam
- 1. ユニコーンは私がUSR2信号とユニコーンをリロードしようとしているが、私は、ログに次のエラーを取得するUSR2
- 2. Spyder Ipythonコンソールは印刷文を完全に無視します
- 3. gitは完全にファイルを無視します
- 4. loaddataがpost_save信号を無視または無効にする
- 5. Visual C#がFormClosingイベントを完全に無視します
- 6. 私の.vimrcファイルは完全に無視されます
- 7. エラーを完全に無視するには.NET MVCを取得
- 8. クロムの「デバッガ」ステートメントを完全に無視する方法は?
- 9. NPMがグローバルにインストールされたパッケージを完全に無視しています
- 10. 子スレッドは無視している信号を返す
- 11. メソッドforループを完全に無視する:
- 12. -moz-column-span:すべて; - 完全に無視されましたか?
- 13. Android搭載Nightwatch/Chromedriverクロムの引数は完全に無視されます
- 14. ページが完全にロードされるまでタップを無視する
- 15. Java Security Managerは完全にリフレクションを無効にします
- 16. 無効にアニメーションを完全
- 17. 末尾のカンマを無視して末尾の不完全な行を無視する
- 18. RegExの改行とタブを完全に無視する方法は?
- 19. AJAXはボタンクリックイベントのポストバックを完全に無効にしました
- 20. symfonyはコードに加えたすべての変更を完全に無視します
- 21. 可視不完全なUITableViewRowAnimation
- 22. Visual Studio C++ ifステートメントまたはifステートメント内の行を完全に無視します。 VS 2015
- 23. 無効にパスワード完全
- 24. iOS PhoneGapアプリがCordova 2.1にアップグレードされました - コンテンツが完全にステータスバーを無視します
- 25. 正規表現でラインを完全に無視するには? (先読みが動作しません)
- 26. ナビゲーションコントローラを完全に無効にする
- 27. Javaセキュリティ機構を完全に無効にしますか?
- 28. CollectionEditorを完全に無効にします
- 29. HTML5キャッシュ(マニフェスト)を完全に無効にしますか?
- 30. XText完全ビルドを無効にする
あなたはstraceに興味があるかもしれません。私はそれがOSXのために利用できるかどうか知っていないが、これはあなたがこれの底になるのを助けるだろう。 http://linux.die.net/man/1/strace –