wrapper.console_input プロパティ

対応バージョン :3.5.52
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

警告

このプロパティの説明を読まずに、パラメータを変更することは絶対にしないで下さい。 設定を間違えると、期待どおりに動作せず、Wrapper の動作不良や不具合の原因となります。

このプロパティでは、JVM のコンソール入力を処理する Wrapper の機能を有効または無効にすることができます。

可能な値は以下の通りです。

  • [ENABLED] :

    stdin の処理を有効にします。

  • [DISABLED] :

    stdin の処理を無効にします。

  • [AUTO] :

    読み取るものが何もない場合に、Wrapper が自動的に stdin の処理を無効にします。
    (Windows では、「AUTO」常に「ENABLED」に解決されます。)

デフォルト値は「AUTO」です。


値「AUTO」を指定すると、次のような場合、Wrapper は自動的に stdin の処理を無効にします(UNIX のみ)。

  • wrapper.daemonize]プロパティが「TRUE」に設定されている場合。これは、定義上、デーモンプロセスは読み込む場所がないために行われます。
  • フォアグラウンドプロセスグループにターミナルが存在しない場合、または制御ターミナルのプロセスグループが Wrapper プロセスのグループと異なる場合。
  • 「/dev/null」が stdin にリダイレクトされた場合。 例えば、TTY を使用せずに Docker コンテナーで実行する場合などです。
  • stdin が読み取り用ではないファイルタイプに接続されている場合。

それ以外の場合はすべて、stdin の処理は有効のままとなります。


通常は、「AUTO」が適切な値ですが、アプリケーションがコンソール入力をまったく読み取らないことがわかっている場合プロパティを「DISABLED」に設定することができます。

コンソール入力を無効にすると、コンソールから読み取る試みは、無期限にブロックされます。 これは、特定の Java コードが読み取り中にループ内でスラッシングするのを防ぐために行われます。 さらに、Wrapper 側の CPU 使用率をわずかに下げることができます。

一部のユーザーから、特定の JVM で、Wrapper を通じてフックアップしたときに、JVM が System.in から読み取りを試行すると、「java.io.IOException:ハンドルが無効です。」エラーが発生する問題が報告されています。 [wrapper.console_input]を「DISABLED」に設定すると、この問題を回避することができます。


設定例:(stdin を無効にする)
wrapper.console_input=DISABLED

参照: コンソール