Co to są SIGPIPE?


Najlepsza odpowiedź

SIGPIPE to sygnał „przerwanego potoku”, który jest wysyłany do procesu, gdy próbuje on pisać do potoku, którego koniec odczytu ma zamknięte (lub gdy próbuje pisać do gniazda, które nie jest już otwarte do odczytu), ale nie odwrotnie . Domyślną akcją jest zakończenie procesu.

To zachowanie jest przydatne w typowych przypadkach uruchamiania procesów w potokach. Jeśli uruchomisz foo | bar, nigdy nie zobaczysz danych wyjściowych foo bezpośrednio – staje się wejściem do bar i zobaczysz wyjście bar. Oznacza to, że jeśli na przykład bar umrze, to nie ma sensu, aby foo nadal generował dane wyjściowe. Może się tak zdarzyć, ponieważ bar nie powiodło się lub nie potrzebuje już danych wejściowych (na przykład, jeśli skanuje swoje dane wejściowe, aby upewnić się, że nie ma błędów, może zatrzymać się po znalezieniu pierwszy).

Wyobraź sobie, co by się stało, gdyby SIGPIPE nie istniał, a bar umarł (czy to z powodu błędu, czy po prostu zdecydował się wyjść ). foo będzie nadal działać i przy próbie zapisu musiałby otrzymać kod błędu. Może to zignorować i kontynuować działanie, pozostawiając użytkownika bez wyraźnego wskazania, że ​​prawdopodobnie wystąpił prawdopodobnie nienormalny stan zakończenia bar. Gdy foo zostanie zabity przez SIGPIPE, powłoka wykryje to za pomocą jednej z funkcji wait() i wydrukuje komunikat „Uszkodzony potok” lub podobnie.

Z drugiej strony, jeśli foo umiera jako pierwszy, jest to typowy przypadek; zamyka koniec zapisu, a następnie bar po prostu osiągnie EOF i zakończy normalnie.

Odpowiedź

OpenConfig to zbiór branżowe modele YANG do konfiguracji i zarządzania, które będą obsługiwane natywnie na platformach sprzętowych i programowych sieciowych.

Utrzymanie zautomatyzowanych struktur dla wdrożeń od wielu dostawców stało się bardzo kosztowne dla operatorów sieci.

Chociaż istnieje wiele standardowych interfejsów transportu, nie ma standardowej reprezentacji danych (przykład, dostawca-A i sprzedawca-B mogą obsługiwać standardowe interfejsy (takie jak XML, REST, NETCONF …), ale klucz-wartość danych nie są takie same. sprzedawca-A może reprezentować klucz interfejsu jako „intf”, a dostawca-B może reprezentować klucz interfejsu jako „interfejs”)

Tak więc za każdym razem, gdy operator sieci dodaje / aktualizuje nowy urządzenia w swoich wdrożeniach od różnych dostawców, muszą zaktualizować swoją zautomatyzowaną strukturę i napisać translatora, aby przekonwertować specyfikację dostawcy fic reprezentacja danych do reprezentacji danych klienta.

Niektórzy operatorzy sieci, tacy jak Google, AT&T, BT, Microsoft … pracują nad wypchnięciem tego tłumacza do dostawcy. Operatorzy nie dbają o to, w jaki sposób uzyskują dane, ale potrzebują danych we wspólnej reprezentacji, aby ich narzędzia mogły je łatwo zrozumieć i przeanalizować.

Model YANG jest używany do definiowania tych standardowych modeli danych. Możesz przyjrzeć się niektórym standardowym modelom yang @ openconfig / public

YANG (Yet Another Next Generation) to język definicji danych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *