web-dev-qa-db-ja.com

nohup:入力を無視してstderrをstdoutにリダイレクトする

以下のように、Nohupを使用してアプリケーションをバックグラウンドで起動しています-

root@phx5qa01c:/bezook# Nohup Java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.Host.com > exhibitor.out &
[1] 30781
root@phx5qa01c:/bezook# Nohup: ignoring input and redirecting stderr to stdout

しかし、このメッセージを見るたびに-

Nohup: ignoring input and redirecting stderr to stdout

このメッセージが表示されても問題はありませんか?それはどういう意味ですか、どうすれば回避できますか?

20
arsenal

アプリケーションがターミナルから切り離されていることを確認するには-フォアグラウンドコマンドに干渉せず、ログアウト後も引き続き実行できるようにするには-Nohupは、stdinもstdoutもstderrもターミナルのようなデバイスではないことを確認します。 documentation は、実行するアクションを説明します。

標準出力が端末の場合、指定されたユーティリティによってその標準出力に書き込まれるすべての出力は、現在のディレクトリのNohup.outファイルの末尾に追加されます。追加のためにNohup.outを作成または開くことができない場合、出力は、HOME環境変数で指定されたディレクトリー内のファイルNohup.outの末尾に追加されます。追加用にどちらのファイルも作成または開くことができない場合、ユーティリティは呼び出されません。

標準エラーが端末の場合、指定されたユーティリティによってその標準エラーに書き込まれるすべての出力は、標準出力と同じファイル記述子にリダイレクトされます。

コマンドラインで> exhibitor.outと入力したときに、stdoutをファイルにリダイレクトしました。アプリケーションのstderrをそのstdoutと同じファイルに転送することに問題がなければ、他に何もする必要はありません。または、2> exhibitor.errなどの引数を追加して、stderrを別のファイルにリダイレクトできます。 (不明なユーザーのおかげで-私の通知には名前が表示されませんでした-この代替を含めることを提案してくれました。)

21
Mark Plotnick

Stdエラーをstd出力にリダイレクトすると、メッセージを取り除くことができます。

Nohup Java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.Host.com > exhibitor.out 2>&1 &
17
shargors

私の状況では、stdoutとstderrをリダイレクトしますが、ログファイルに次のように表示されます。

Nohup: ignoring input

この警告を削除するには、次のようにstdinもリダイレクトする必要があります。

Nohup Java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.Host.com > exhibitor.out 2>&1  </dev/null &

この答えは間違いなく遅いですが、他の人の役に立つかもしれません。

4
styshoo