nohup tensorflow_model_server \
--rest_api_port=8501 \
--model_name=fashion_model \
--model_base_path="${MODEL_DIR}" >server.log 2>&1
テンソルフローサービングガイドで見た内容です。ここ。意味を知りたいです> server.log 2>&1
。私はこれがstdout
ファイルに保存してから別のファイルに保存することです。stderr
それが何なのかわかりません。
答え1
このリダイレクトの目的は次のとおりです。返品stderr
出力をサーバーログに記録します。
このようにリダイレクトを使用すると、
some command > file.txt
プログラムによって作成された出力は、通常stdout
コンソールに接続された標準出力ストリームにのみ保存されます。
ただし、ほとんどのプログラムはエラーメッセージを別の出力ストリームに書き込むためのベストプラクティスに従い、stderr
これらのエラーメッセージはコンソールにも印刷されますが、エラーメッセージが「詳細」にならないように個別に「キャッチして」リダイレクトできます。プログラムの正常な出力。
しかし、これは問題かもしれません。一部の長い(したがって、無人)コンパイルプロセスの「通常の」出力をファイルにリダイレクトすると、警告とエラーがコンソールに出力されます。後でもう一度結果を確認すると、ログファイルに標準の「すべてが正常です」出力が表示され、コンソールには見かけに関連しないエラー出力が表示されます。
したがって、すべてのメッセージが「コンテキスト」になるように、エラー出力をファイルに「リダイレクト」することが役に立ちます。
ここでのメカニズムは
まず
stdout
ファイルにリダイレクトします。 (この部分は、ストリームのファイル記述子を表すことでcommand > file
明示的に作成できます。)command 1>file
1
stdout
stderr
また、「マージされた」方法でリダイレクトstdout
(これが構文がファイル記述子を「コピー」するという意味)である理由であり、ファイルにリダイレクトされることが知られています2>&1
。&
stdout
もっと読む良い場所は次のとおりです。