Bedste svar
SIGPIPE er signalet “brudt rør”, som sendes til en proces, når det forsøger at skrive til et rør, hvis læste ende har lukket (eller når den forsøger at skrive til en stikkontakt, der ikke længere er åben for læsning), men ikke omvendt . Standardhandlingen er at afslutte processen.
Denne adfærd er nyttig i typiske tilfælde af kørsel af processer i rørledninger. Hvis du kører foo | bar
, får du aldrig se output fra foo
direkte — det bliver input til bar
og du ser bar
s output. Dette betyder, at hvis for eksempel bar
dør, så er der ingen mening i foo
at fortsætte med at producere output. Dette kan ske enten fordi bar
mislykkedes, eller fordi det ikke længere har brug for input (f.eks. Hvis det scanner dets input for at sikre, at der ikke er nogen fejl, kan det stoppe efter at have fundet den første).
Forestil dig hvad der ville ske, hvis SIGPIPE ikke eksisterede, og bar
døde (hvad enten det var på grund af en fejl eller fordi det simpelthen besluttede at afslutte ). foo
fortsætter med at køre, og den bliver nødt til at modtage en fejlkode, når den prøver at skrive. Det ignorerer muligvis dette og fortsætter med at køre, hvilket efterlader brugeren uden nogen tydelig indikation af, at den muligvis unormale tilstand for bar
først ophører. Når foo
dræbes af SIGPIPE, registrerer skallen dette ved hjælp af en af wait()
-funktionerne og udskriver en “Broken pipe” -meddelelse eller lignende.
På den anden side, hvis foo
først dør, er dette det sædvanlige tilfælde; det lukker skriveenden, og derefter bar
når simpelthen EOF og afsluttes normalt.
Svar
OpenConfig er en samling af industristandard YANG-modeller til konfiguration og styring, der understøttes indbygget på netværkshardware- og softwareplatforme.
Det er blevet meget dyrt for netværksoperatørerne at opretholde deres automatiserede rammer til implementering af flere leverandører.
Selvom der er mange standard transportgrænseflader, er der ingen standard datarepræsentation (Eksempel, leverandør-A og leverandør-B understøtter muligvis standardgrænseflader (som XML, REST, NETCONF …), men data-nøgleværdi er ikke det samme. leverandør-A repræsenterer muligvis interface-nøglen som “intf” og leverandør-B repræsenterer interface-nøglen som “interface”)
Så hver gang en netværksoperatør tilføjer / opdaterer en ny enhed i deres implementeringer fra forskellige leverandører, skal de opdatere deres automatiserede ramme og skrive oversætter for at konvertere leverandørspecifikationen fic data repræsentation til kundedata repræsentation.
Nogle netværksoperatører som Google, AT&T, BT, Microsoft … arbejder på at skubbe disse oversættere til sælgeren. Operatører er ligeglade med, hvordan de får data, men har brug for data i fælles repræsentation, så deres værktøjer let kan forstå og analysere dataene.
YANG-modellen bruges til at definere disse standarddatamodeller. Du kan se på nogle standard yang-modeller @ openconfig / public
YANG (Yet Another Next Generation) er et datadefinitionssprog.