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


19

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

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


2
試しましたか?nohup java -jar blaa bla >/tmp/test.out 2>&1 &
ラーフル・パティル

使用/tmp/test.outする代わりにを使用できますexhibitor.out。申し訳ありませんが、私はこれらの事にはかなり新しいですと...ばかな質問を尋ねるために
アーセナルを

はい..使用できます..これは単なる標準エラー/出力ファイルです。しかし、追加後のステータスは何2>&1ですか?
ラーフルパティル

回答:


20

フォアグラウンドコマンドと干渉せず、ログアウト後も実行を継続するように、アプリケーションがターミナルから関連付け解除されることをnohup確認するには、stdin、stdout、stderrのいずれもターミナルのようなデバイスではないことを確認します。ドキュメントは、それが必要なものの行動について説明します。

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

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

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


2
次のように入力fdを手動で閉じることも便利です</dev/null。Linuxはこれを自動的に行いますが、手動で行わない場合は、nohupの出力に次の行が表示されますnohup: ignoring input
。– wulfgarpro

17

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 &

4

私の状況では、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 &

この答えは間違いなくあなたにとって遅かったと思いますが、多分他の人に役立つでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.