Beste antwoord
SIGPIPE is het “gebroken pijp” -signaal, dat naar een proces wordt gestuurd wanneer het probeert te schrijven naar een pijp waarvan het leesuiteinde gesloten (of wanneer het probeert te schrijven naar een socket die niet langer open is voor lezen), maar niet vice versa . De standaardactie is om het proces te beëindigen.
Dit gedrag is handig voor typische gevallen waarin processen in pijplijnen worden uitgevoerd. Als je foo | bar
uitvoert, krijg je nooit de uitvoer van foo
rechtstreeks te zien — het wordt de invoer voor bar
en je ziet de uitvoer van bar
. Dit betekent dat als bijvoorbeeld bar
sterft, het geen zin heeft om foo
door te gaan met het produceren van uitvoer. Dit kan gebeuren omdat bar
is mislukt, of omdat er geen invoer meer nodig is (als het bijvoorbeeld zijn invoer scant om er zeker van te zijn dat er geen fouten zijn, kan het stoppen nadat het de eerste).
Stel je voor wat er zou gebeuren als SIGPIPE niet bestond, en bar
stierf (als gevolg van een fout of omdat het simpelweg besloot af te sluiten ). foo
zou blijven draaien, en het zou een foutcode moeten ontvangen bij een poging om te schrijven. Het kan dit negeren en doorgaan met werken, waardoor de gebruiker geen duidelijke indicatie heeft dat de mogelijk abnormale toestand van bar
het eerst wordt beëindigd. Wanneer foo
wordt gedood door SIGPIPE, zal de shell dit detecteren met behulp van een van de wait()
functies, en een “Broken pipe” -bericht afdrukken of vergelijkbaar.
Aan de andere kant, als foo
het eerst sterft, is dit het gebruikelijke geval; het sluit het schrijfeinde, en dan bar
zal gewoon de EOF bereiken, en normaal eindigen.
Antwoord
OpenConfig is een verzameling van industriestandaard YANG-modellen voor configuratie en beheer die native worden ondersteund op netwerkhardware- en softwareplatforms.
Het is erg duur geworden voor de netwerkoperators om hun geautomatiseerde frameworks te onderhouden voor implementaties van meerdere leveranciers.
Hoewel er veel standaard transportinterfaces zijn, zijn er geen standaard gegevensweergave (voorbeeld, leverancier-A en leverancier-B ondersteunen mogelijk standaardinterfaces (zoals XML, REST, NETCONF …), maar gegevenssleutelwaarde zijn niet hetzelfde. vendor-A kan de interfacesleutel voorstellen als “intf” en vendor-B kan de interfacesleutel voorstellen als “interface”)
Dus elke keer dat een netwerkoperator een nieuwe toevoegt / update apparaat in hun implementaties van verschillende leveranciers, moeten ze hun geautomatiseerde framework bijwerken en een vertaler schrijven om de leverancierspeci fic data representatie naar klant data representatie.
Sommige netwerkoperators zoals Google, AT&T, BT, Microsoft … werken eraan om deze vertaler naar de leverancier te sturen. Het maakt operators niet uit hoe ze aan gegevens komen, maar ze hebben gegevens nodig in een gemeenschappelijke weergave zodat hun tools de gegevens gemakkelijk kunnen begrijpen en ontleden.
Het YANG-model wordt gebruikt om deze standaardgegevensmodellen te definiëren. Je kunt enkele standaard yang-modellen bekijken @ openconfig / public
YANG (Yet Another Next Generation) is een taal voor gegevensdefinitie.