ベストアンサー
SIGPIPEは「壊れたパイプ」信号であり、読み取り端にあるパイプに書き込もうとしたときにプロセスに送信されます。閉じている(または読み取り用に開いていないソケットに書き込もうとしたとき)が、その逆はありません。デフォルトのアクションはプロセスを終了することです。
この動作は、パイプラインでプロセスを実行する一般的なケースで役立ちます。 foo | bar
を実行すると、foo
の出力を直接表示することはできません— bar
と、bar
の出力が表示されます。つまり、たとえば、bar
が停止した場合、foo
が出力を生成し続ける意味はありません。これは、bar
が失敗したか、入力が不要になったために発生する可能性があります(たとえば、入力をスキャンしてエラーがないことを確認している場合、検出後に停止する可能性があります)
SIGPIPEが存在せず、bar
が(エラーが原因であるか、単に終了することを決定したために)死亡した場合にどうなるか想像してみてください。 )。 foo
は引き続き実行され、書き込もうとするとエラーコードを受け取る必要があります。これを無視して実行を継続し、bar
が最初に終了するという異常な状態が発生した可能性があることをユーザーに明確に示さない場合があります。 foo
がSIGPIPEによって強制終了されると、シェルはwait()
関数の1つを使用してこれを検出し、「パイプの破損」メッセージを出力します。同様です。
一方、foo
が最初に死んだ場合、これは通常のケースです。書き込み終了を閉じると、bar
は単にEOFに到達し、正常に終了します。
回答
OpenConfigはのコレクションです。ネットワークハードウェアおよびソフトウェアプラットフォームでネイティブにサポートされる構成および管理用の業界標準のYANGモデル。
ネットワーク事業者がマルチベンダー展開用の自動フレームワークを維持することは非常に費用がかかります。
多くの標準トランスポートインターフェイスがありますが、標準データ表現はありません(たとえば、ベンダーAとベンダーBは標準インターフェイス(XML、REST、NETCONFなど)をサポートしている可能性がありますが、データのキー値ベンダーAはインターフェースキーを「intf」として表し、ベンダーBはインターフェースキーを「インターフェース」として表す場合があります)
したがって、Network-Operatorが新しいものを追加/更新するたびにさまざまなベンダーからの展開でデバイスを使用する場合は、自動フレームワークを更新し、ベンダー固有の変換を行うトランスレータを作成する必要がありますficデータ表現から顧客データ表現へ。
Google、AT&T、BT、Microsoftなどの一部のネットワーク事業者は、これらのトランスレータをベンダーにプッシュすることに取り組んでいます。オペレーターはデータの取得方法を気にしませんが、ツールがデータを簡単に理解して解析できるように、共通の表現でデータを必要とします。
これらの標準データモデルの定義には、YANGモデルが使用されています。いくつかの標準的なヤンモデルを見ることができます@ openconfig / public
YANG(Yet Another Next Generation)はデータ定義言語です。