innd

INND(8)                     System Manager's Manual                    INND(8)



NAZWA
       innd, inndstart - InterNetNews daemon

SKÅADNIA
       innd [ -a ] [ -c dni ] [ -C ] [ -d ] [ -f ] [ -H licznik ] [ -i licznik
       ] [ -Iadres_IP ] [ -l rozmiar ] [ -m tryb ] [ -n flaga ] [ -o licznik ]
       [ -pfd_des ] [ -Pport ] [ -r ] [ -s ] [ -t opóźnienie ] [ -T licznik
       ] [ -u ] [ -X sekundy ] [ -Z ]

       inndstart [ flagi ]

OPIS
       Innd, który jest demonem news (InterNetNews), obsÅuguje wszystkie
       nadchodzÄce feedy. Najpierw wczytuje do pamiÄci pliki active(5),
       newsfeeds(5) i incoming.conf(5).  Potem otwiera port NNTP do odbierania
       artykuÅów ze zdalnych stacji (zobacz opcjÄ ``-p''). JeÅli w
       include/config.h zdefiniowano HAVE_UNIX_DOMAIN_SOCKETS, to do odbioru
       artykuÅów od lokalnych procesów, takich jak nnrpd(8) i rnews(1)
       otwierane jest gniazdo strumieniowe dziedziny Uniksowej, a dla
       ctlinnd(8) odwierane jest analogiczne gniazdo datagramowe.  Gdy makro
       to nie jest zdefiniowane, używane sÄ ÅÄcza nazwane.  Ctlinnd(8)
       wykorzystywany jest do przekazywania serwerowi poleceÅ wykonania
       okreÅlonych akcji.  Otwiera również bazÄ history(5) i dwa pliki
       raportowe, zastÄpujÄce jego standardowe wyjÅcie i wyjÅcie bÅÄdu.

       Po otwarciu wszystkich plików i gniazd, innd oczekuje na poÅÄczenia i
       dane na swoich portach, używajÄc do tego select(2) i nieblokujÄcego
       I/O.  JeÅli nie ma dostÄpnych danych, to wypróżni on swoje
       wewnÄtrzrdzeniowe struktury danych. DomyÅlna liczba sekund opóźnienia
       przed wypróżnieniem jest ustawiana jako <DEFAULT_TIMEOUT w
       config.data> (zwykle 300) sekund.

       JeÅli innd otrzyma bÅÄd ENOSPC (zobacz intro(2)) podczas zapisu pliku
       active, pliku article lub bazy historii, to wyÅle do siebie komendÄ
       ``throttle''.  Stanie siÄ tak również, jeÅli otrzyma zbyt wiele
       bÅÄdów wejÅcia-wyjÅcia podczas zapisu do jakiegoÅ pliku.

       Niektóre parametry ustawiane w inn.conf(5) mogÄ byÄ również podane w
       linii poleceÅ innd. W tym wypadku, opcje z inn.conf(5) bÄdÄ nadpisane
       przez opcje linii poleceÅ.

OPCJE
       -a     DomyÅlnie, jeÅli host nie jest wymieniony w pliku incoming.conf
              to poÅÄczenie jest przekazywane do nnrpd.  Po użyciu tej flagi
              dowolny host może siÄ podÅÄczyÄ i przesyÅaÄ artykuÅy.

       -c     innd odrzuca stare artykuÅy. Zasadniczo zachowanie to może byÄ
              sterowane przez bazÄ historii, lecz czasem stacja wyrzuca w sieÄ
              paczkÄ bardzo starych artykuÅów. Flaga ``odrzuca wszelkie
              artykuÅy, wysÅane dawniej niż 21 dni temu. WartoÅÄ zerowa
              powstrzymuje ten test. DomyÅlnÄ wartoÅciÄ jest 14 dni, lecz
              można to zmieniÄ opcjÄ ``artcutoff'' w inn.conf(5)

       -C     JeÅli użyta jest flaga ``-C'', to innd przyjmie i przesyÅa
              dalej, ale nie przetwarza wiadomoÅci anulowania i powstrzymania.
              Jest to przeznaczone dla stacji, w których nadużywane sÄ
              anulowania i które wybierajÄ mechanizm z lepszÄ autoryzacjÄ.

       -d -f  Innd normalnie przechodzi w tÅo, ustawia standardowe wyjÅcia na
              pliki raportowe i odÅÄcza siÄ od terminala. Po użyciu flagi
              ``-d'' serwer tego nie robi, a po użyciu flagi ``-f'', serwer
              pozostaje na pierwszym planie.

       -H -T -X
              Flagi ``-H'', ``-T'' i ``-X'' sterujÄ liczbÄ poÅÄczeÅ
              dozwolonych na minutÄ. Ma to w zaÅożeniach dziaÅaÄ jako ochrona
              serwera przed czytnikami, które wykonujÄ w ciÄgu minuty zbyt
              wiele poÅÄczeÅ z serwerem. Zazwyczaj nie używa siÄ tego, chyba
              że rzeczywiÅcie pojawia siÄ jakiÅ problem.  Tablica używana do
              tych sprawdzeŠjest ograniczona do 128 wpisów i jest używana
              jako pierÅcieÅ (ring). Rozmiar zostaÅ wybrany do uÅatwienia
              obliczania indeksu i do upewnienia siÄ, że nie zabraknie ci
              miejsca.  Praktycznie wydaje siÄ wÄtpliwe, żebyÅ wykorzystaÅ
              nawet poÅowÄ tablicy naraz.

              Flaga ``-H'' okreÅla maksymalnÄ liczbÄ poÅÄczeÅ pochodzÄcych z
              danego hosta z serwerem podczas ``-X'' sekund. DomyÅlnie 2.

              Flaga ``-T'' ogranicza caÅkowitÄ liczbÄ nadchodzÄcych poÅÄczeÅ
              innda w okresie ``-X'' sekund. MaksymalnÄ wartoÅciÄ jest 128.
              DomyÅlnÄ 60.

              Flaga ``-X'' ustawia liczbÄ sekund, używanÄ przez  ``-H'' i
              ``-T''. WartoÅÄ zerowa wyÅÄcza sprawdzanie. DomyÅlnie jest 0.

       -i     Flaga ``-i'' ogranicza liczbÄ nadchodzÄcych poÅÄczeÅ NNTP.
              WartoÅÄ zerowa wyÅÄcza to sprawdzenie. DomyÅlnÄ wartoÅciÄ, jeÅli
              w inn.conf(5) nie podano opcji ``maxconnections'' jest 50.
              Wymieniona opcja jest zastÄpowana wartoÅciÄ tej opcji.

       -I     Opcja ta umożliwia wiÄzanie innda do podanego adresu interfejsu
              IP. Adres IP musi byÄ w postaci kropkowej czwórki liczb
              (nnn.nnn.nnn.nnn). Zobacz też opcjÄ ``bindaddress'' w
              inn.conf(5).

       -l     Flaga ``-l'' ogranicza rozmiar artykuÅu. Po użyciu tej flagi,
              wszystkie artykuÅy wiÄksze niż rozmiar bajtów bÄdÄ odrzucane.
              DomyÅlnÄ wartoÅciÄ jest 1000000L bajtów. Sprawdzanie można
              wyÅÄczyÄ, używajÄc wartoÅci zerowej.  Patrz także opcje
              ``maxartsize'' i ``localmaxartsize'' w inn.conf(5).

       -m     Flaga ``-m'' sÅuży do uruchamiania serwera w zatrzymanym lub
              stÅumionym stanie (zobacz ctlinnd(8)).  Argument rozpoczyna siÄ
              pojedynczÄ literÄ: g, p lub t, wskazujÄce odpowiednio na ``go''
              (startuj), ``pause'' (zatrzymaj) lub ``throttle'' (stÅum).

       -n     Flaga ``-n'' okreÅla czy pauzowanie lub stÅumienie serwera
              powinno również wyÅÄczyÄ przyszÅe procesy czytnikowe. WartoÅÄ
              ``y'' powoduje, że czytniki zachowujÄ siÄ jak serwer, a wartoÅÄ
              ``n'' umożliwia czytanie, nawet gdy serwer nie pracuje.
              DomyÅlnie zezwala siÄ na czytanie, a zmieniÄ można to opcjÄ
              ``readerswhenstopped'' w inn.conf(5).

       -o     Flaga ``-o'' sÅuży ograniczaniu liczby plików, które sÄ
              utrzymywane otwarte dla wychodzÄcych feedów plikowych. DomyÅlnÄ
              wartoÅciÄ jest liczba dostÄpnych deskryptorów minus czÄÅÄ
              zarezerwowana do użytku wewnÄtrznego.

       -p     Po użyciu flagi ``-p'' przyjmuje siÄ, że port NNTP jest
              otwierany na podanym deskryptorze. (JeÅli użyta jest ta flaga,
              to innd zakÅada, że pracuje z wÅaÅciwymi uprawnieniami i nie
              bÄdzie woÅaÅ chown(2) na żadnych z tworzonych plików lub
              katalogów.)

       -P     JeÅli użyta jest flaga ``-P'', to podany port jest używany do
              nasÅuchiwania poÅÄczeÅ.  innd musi mieÄ wystarczajÄce
              uprawnienia startowe by otworzyÄ podany port.

       -r     JeÅli użyta jest flaga ``-r'', serwer przenumeruje plik active
              zupeÅnie tak, jak po wysÅaniu komendy ``renumber''.

       -s     JeÅli użyta jest flaga ``-s'', to innd nic nie bÄdzie robiÄ,
              lecz tylko sprawdzi skÅadniÄ pliku newsfeeds.  JeÅli bÄdÄ tam
              bÅÄdy, to zgÅosi kod bÅÄdu; rzeczywiste bÅÄdy bÄdÄ natomiast
              zgÅoszone w syslog(3).

       -t     Zmienia czas opóźnienia przed wypróżnieniem do timeout
              sekund.

       -u     Raporty sÄ normalnie buforowane; flaga ta wyÅÄcza to zachowanie.

       Inndstart jest maÅym programem typu front-end, który otwiera port
       NNTP, ustawia uid i gid na opiekuna news, a nastÄpnie uruchamia demona
       innd z flagÄ ``-p'' i minimalnym bezpiecznym Årodowiskiem.  Jest to
       maÅy front-end dla stacji, która nie chce uruchamiaÄ innd z
       uprawnieniami roota.

KOMUNIKATY STERUJÄCE
       ArtykuÅy przychodzÄce, majÄce nagÅówek Control sÄ nazywane
       komunikatami sterujÄcymi.  Poza komunikatem anulowania, sÄ one
       zaimplementowane przez zewnÄtrzne programy w katalogu <pathcontrol w
       inn.conf> o ile <usecontrolchan w inn.conf> jest ustawione na
       ``false''. (Komunikaty anulowania (cancel) odÅwieżajÄ bazÄ historii,
       wiÄc muszÄ byÄ obsÅugiwane wewnÄtrznie; koszt synchronizowania,
       blokowania i odblokowywania byÅby zbyt wysoki przy odbiorze wielu
       takich komunikatów.)

       Gdy nadchodzi komunikat sterujÄcy, pierwsze sÅowo tekstu jest
       konwertowane na maÅe litery i jest używane jako nazwa uruchamianego
       programu. JeÅli program nie istnieje, wywoÅywany jest domyÅlny program,
       okreÅlony przez <pathcontrol w inn.conf>/default.

       Wszystkie programy sterujÄce sÄ wywoÅywane z czterema parametrami.
       Pierwszym jest adres nadawcy komunikatu; jest to pobierane z nagÅówka
       Sender. JeÅli nagÅówek ten jest pusty, to dane sÄ pobierane z
       nagÅówka From. NastÄpnym parametrem jest adres zwrotny replik;
       pobierany z nagÅówka Reply-To.  JeÅli nagÅówek ten jest pusty, użyty
       zostanie adres nadawcy.  Trzecim parametrem bÄdzie nazwa pliku, w
       którym znajduje siÄ artykuÅ wzglÄdem katalogu skÅadowego news.
       Czwartym parametrem jest host, który wysÅaÅ artykuÅ. Jest to
       odczytywane z linii Path.

       JeÅli <usecontrolchan w inn.conf> jest ustawione na ``true'', to żaden
       komunikat sterujÄcy nie bÄdzie przetwarzany przez program zewnÄtrzny,
       forkowany przez innda. Zamiast tego, bÄdzie przetwarzany przez skrypt
       controlchan, który jest wywoÅywany jako program kanaÅowy innda. Musisz
       do używania tego skryptu skonfigurowaÄ newsfeeds(5).  Przetwarzanie z
       użyciem controlchan może zredukowaÄ nadmierne obciÄżenie, jeÅli zbyt
       wiele komunikatów sterujÄcych pojawia siÄ naraz.

       Dystrybucja komunikatu sterujÄcego jest odmienna od dystrybucji
       standardowych artykuÅów.

       Komunikaty sterujÄce normalnie wpadajÄ do grupy dyskusyjnej control.
       MogÄ one byÄ zapisywane w podgrupach, lecz w oparciu o polecenie
       komunikatu sterujÄcego.  Na przykÅad komunikat newgroup może byÄ
       zapisany w grupie control.newgroup lub w ogólnym control, jeÅli
       specjalizowana podgrupa nie istnieje.

       Stacje mogÄ jawnie udostÄpniaÄ grupÄ ``control'' w ich listach
       zapisowych, lecz zwykle lepiej jest jÄ wyÅÄczyÄ. JeÅli komunikat
       sterujÄcy jest wysyÅany na grupÄ, której nazwa koÅczy siÄ czterema
       znakami ``.ctl'', to przyrostek jest obcinany, a to co pozostanie jest
       używane jako nazwa grupy.  Na przykÅad komunikat anulujÄcy, wysÅany na
       ``news.admin.ctl'' zostanie przesÅany do wszystkich stacji zapisanych
       na grupy ``control'' lub ``news.admin''.  WiadomoÅci newgroup lub
       rmgroup wymagajÄ dodatkowego specjalnego traktowania.  Jeżeli
       wiadomoÅÄ jest zaakceptowana i zostaÅa wysÅana do tworzonej lub
       usuwanej grupy, to ta wiadomoÅÄ zostanie przesÅana do wszystkich
       serwerów, których wzorce subskrypcji grup pozwoliÅyby na odebranie
       wiadomoÅci wysyÅanych do tej grupy.

       JeÅli <mergetogroups w inn.conf> jest ustawione na ``true'', to gdy
       artykuÅ jest wysyÅany na grupÄ, która rozpoczyna siÄ trzema literami
       ``to.'', to zostanie potraktowany specjalnie, jeÅli grupa ta nie
       istnieje w pliku active: artukuÅ jest skÅadowany do grupy ``to'' i jest
       wysyÅany do pierwszej stacji, nazwanej po przedrostku. Na przykÅad,
       wysyÅanie do ``to.uunet'' zostanie zÅożone do ``to'' i przesÅane do
       stacji ``uunet''.  file:

RÃÅ»NICE PROTOKOÅU
       Innd implementuje komendy NNTP zdefiniowane w RFC 977 z nastÄpujÄcymi
       odstÄpstwami:

       1.     Za ``list'' może wystÄpowaÄ dodatkowo argument ``active'',
              ``active.times'', ``newsgroups'' lub ``subscription''.  Jest to
              popularne rozszerzenie, lecz nie w peÅni obsÅugiwane; zobacz
              nnrpd(8).

       2.     Zaimplementowane sÄ komendy ``authinfo user'' oraz ``authinfo
              pass''.  Zobacz draft-barber-nntp-imp-07.txt dla dalszych
              szczegóÅów.

       3.     UdostÄpniona jest nowa komenda, ``mode reader''.  Komenda ta
              powoduje, że serwer przekazuje poÅÄczenie do nnrpd.  Komenda
              ``mode query'' przeznaczona jest dla przyszÅych zastosowaÅ i
              obecnie jest traktowana tak samo.

       4.     UdostÄpnione sÄ komendy wspierajÄce transfer strumieniowy:
              ``check messageid'' i ``takethis messageid''.

       5.     UdostÄpniona jest komenda transferu wsadowego ``xbatch liczba-
              bajtów''. Komenda ta odczyta liczbÄ-bajtów bajtów i zapisze
              je dla dalszego przetwarzania przez rnews(1) (który należy
              uruchomiÄ oddzielnie). Obejrzyj programy innxbatch i
              sendxbatches.sh.

       6.     PozostaÅymi zaimplementowanymi komendami sÄ ``head'' , ``help''
              , ``ihave'' , ``quit'' oraz ``stat''.

MODYFIKACJE NAGÅÃWKÃW
       Innd modyfikuje tak maÅo nagÅówków, jak tylko siÄ da, lecz mógÅby
       byÄ lepszy.

       Oto lista nagÅówków, które jeÅli istniejÄ, sÄ usuwane:
              Date-Received
              Posted
              Posting-Version
              Received
              Relay-Version
       Puste nagÅówki oraz nagÅówki skÅadajÄce siÄ z biaÅych spacji
       również sÄ opuszczane.

       Do nagÅówka Path doklejana jest nazwa lokalnej stacji (okreÅlanej
       przez wartoÅÄ ``pathhost'' w inn.conf(5)) i wyrzyknik (jeÅli nazwa
       pierwszej stacji nagÅówka różni siÄ od lokalnej).

       NagÅówek Xref jest usuwany i tworzony jest nowy.

       W przypadku nieobecnoÅci, nagÅówek Lines jest dodawany.

       Innd nie przepisuje nieprawidÅowych nagÅówków. Na przykÅad nie bÄdzie
       zmieniaÄ nieprawidÅowego nagÅówka Lines, ale odrzuci artykuÅ.

RAPORTOWANIE
       Innd raportuje wszystkie nadchodzÄce artykuÅy do pliku raportowego.
       Jest to plik tekstowy o zmiennej iloÅci rozdzielanych spacjami pól o
       jednym z nastÄpujÄcych formatów:
              mon dd hh:mm:ss.mmm + feed <Message-ID> stacja...
              mon dd hh:mm:ss.mmm j feed <Message-ID> stacja...
              mon dd hh:mm:ss.mmm c feed <Message-ID> stacja...
              mon dd hh:mm:ss.mmm - feed <Message-ID> powód...
              mon dd hh:mm:ss.mmm ? feed <Message-ID> powód...

       Po polu Message-ID może byÄ również pole nazwy hosta i rozmiaru,
       zależnie od opcji ``nntplinklog'' i ``logsize'' z inn.conf(5).

       Pierwsze trzy pola sÄ polami daty i czasu w rozdzielczoÅci
       milisekundowej.  PiÄte pole jest stacjÄ, która wysÅaÅa artykuÅ
       (odczytywane z nagÅówka Path).  Szóste pole jest identyfikatorem
       artykuÅu; jeÅli informacja jest niedostÄpna, pojawi siÄ w jej miejscu
       pytajnik.

       Czwarte pole okreÅla czy artykuÅ zostaÅ przyjÄty czy nie. JeÅli jest
       tam znak plus, to zostaÅ przyjÄty. JeÅli ``j'', to zostaÅ przyjÄty,
       lecz wszystkie grupy majÄ w swoich rekordach active ``j'', wiÄc artykuÅ
       zostaÅ zÅożony do grupy ``junk''.  JeÅli w polu pojawiÅa siÄ litera
       ``c'', to przed pojawieniem siÄ oryginalnego artykuÅu odebrany zostaÅ
       komunikat anulujÄcy.  We wszystkich tych przypadkach artykuÅ zostaÅ
       przyjÄty i pole ``stacja...''  zawiera rozdzielonÄ spacjami listÄ
       stacji, do których artykuÅ jest przesyÅany.

       JeÅli czwarte pole zawiera znak minusa, o artykuÅ zostaÅ odrzucony.
       Powodami odrzucenia mogÄ byÄ:
              "%s" header too long (za dÅugi nagÅówek)
              "%s" wants to cancel <%s> by "%s" ("%s" chce anulowaÄ <%c> poprzez "%s")
              Article exceeds local limit of %s bytes (ArtykuÅ przekracza lokalny
                                                       limit %s bajtów)
              Article posted in the future -- "%s" (ArtykuÅ wysÅany w przyszÅoÅci -- "%s")
              Bad "%s" header (ZÅy nagÅówek "%s")
              Can't write history (Nie mogÄ zapisaÄ historii)
              Duplicate (Duplikat)
              Duplicate "%s" header (Zduplikowany nagÅówek "%s")
              EOF in headers (EOF w nagÅówkach)
              Linecount %s != %s +- %s (Liczba linii %s != %s +- %s)
              Missing %s header (Brak nagÅówka %s)
              No body (Brak ciaÅa)
              No colon-space in "%s" header (Brak dwukropka-spacji w nagÅówku "%s")
              No space (Brak spacji (albo miejsca???))
              Space before colon in "%s" header (Spacja przed dwukropkiem w nagÅówku "%s")
              Too old -- "%s" (Za stare -- "%s")
              Unapproved for "%s" (Niezatwierdzone dla "%s")
              Unwanted newsgroup "%s" (Niechciana grupa dyskusyjna "%s")
              Unwanted distribution "%s" (Niechciana dystrybucja "%s")
              Whitespace in "Newsgroups" header -- "%s" (BiaÅa spacja w nagÅówku
                                                         "Newsgroups" -- "%s")
       Gdzie ``%s'' jest podmieniane przez konretniejsze informacje.

       Jeżeli w czwartym polu wystÄpi znak ``?'', oznzcza to, że atykuÅ
       zawiera dziwne ÅaÅcuchy znaków, tj. CR bez LF lub LF bez CR. Te znaki
       sÄ używane razem ``CRLF'', co oznacza koniec linii. Obecnie taka
       informacja w logu oznacza dziwnoÅÄ tego artykuÅu, ale innd nigdy nie
       odrzuca artykuÅu z tego powodu.

       Zauważ, że jeÅli artykuÅ jest przyjÄty i <wanttrash w inn.conf> jest
       ustawione na ``yes'' i żadna z grup nie jest odpowiednia, to zostanie
       zraportowany w dwóch liniach: w linii ``j'' i ``-''.

       Innd zgÅasza też obszerne raporty poprzez sysloga.  Pierwsze sÅowo
       komunikatu raportowego bÄdzie: nazwÄ stacji, jeÅli wpis jest dla niej
       specyficzny (np. komunikat ``connected''); sÅowem ``SERVER'', jeÅli
       komunikat jest zwiÄzany z serwerem, np. gdy pojawi siÄ bÅÄd odczytu.

       JeÅli drugim sÅowem sÄ cztery litery ``cant'', to zgÅaszany jest bÅÄd.
       W tym przypadku nastÄpne dwa sÅowa ogólnie nazywajÄ wywoÅanie
       systemowe lub funkcjÄ bibliotecznÄ, która siÄ nie powiodÅa oraz
       obiekt, wokóŠktórego wykonywane byÅy dziaÅania. Reszta linii może
       zawieraÄ inne informacje.

       W innych przypadkach, drugie sÅowa okreÅla rodzaj zmiany, a reszta
       linii uÅciÅla tÄ informacjÄ. SÅowo ``internal'' ogólnie oznacza
       wewnÄtrzny bÅÄd logiczny.

SYGNAÅY
       Innd przechwytuje sygnaÅy SIGTERM i SIGDANGER i wyÅÄcza siÄ po nich.
       JeÅli użyta jest flaga ``-d'', przechwytywany bÄdzie również SIGINT
       i bÄdzie dziaÅaÅ analogicznie.

       Innd przechwytuje sygnaÅ SIGUSR1 i odtwarza kanaÅ sterujÄcy,
       wykorzystywany normalnie przez ctlinnd(8).

HISTORIA
       Napisane przez Richa $alza <rsalz@uunet.uu.net> dla InterNetNews.  Jest
       to rewizja 1.24.2.4, z dnia 2000/08/20.

ZOBACZ TAKŻE
       active(5), ctlinnd(8), dbz(3), history(5), incoming.conf(5),
       inn.conf(5), newsfeeds(5), nnrpd(8), rnews(1), syslog(8).



                                                                       INND(8)