Provided by: manpages-hu_20010119-5_all bug

NÉV

       init, telinit - processz vezérlés inicializálása

ÁTTEKINTÉS

       /sbin/init [ 0123456Ss ]
       /sbin/telinit [ -t sec ] [ 0123456sSQqabcUu ]

LEÍRÁS

   Init
       Az   init   minden   processz  szülője.  Az  elsődleges  szerepe,  hogy
       processzeket hozzon létre egy szkript  alapján,  amely  a  /etc/inittab
       fájlban található (lásd inittab(5)).  Ebben a fájlban találhatók azok a
       bejegyzések amelyek hatására az init létrehoz gettyket minden  vonalon,
       amin  a  felhasználók  be  tudnak  lépni.   E mellett ellenőriz autonóm
       processzeket, amelyekre bármely adott rendszernek szüksége van.

FUTÁSI SZINTEK

       A futsi szint egy szoftver konfiguráció, amely csak egy  meghatározott
       processz  csoport  létezését  engedi  meg.  Az,  hogy  az  init  milyen
       processzeket hozzon létre  egy  adott  futási  szinten  a  /etc/inittab
       fájlban  van  definiálva.  Az init nyolc futási szinten lehet: 0-6 és S
       vagy  s.   Futási  szintet  úgy  válthatunk,   ha   egy   privilegizált
       felhasználó futtatja a
        telinit  programot  ,  amely  elküldi a megfelelő jeleket az init-nek,
       amiből ez utóbbi megtudja melyik futási szintre kell átváltania.

       A 0, 1 és 6 futási szintek foglaltak.  0-ás  futási  szintre  váltással
       tudjuk  leállítani  a  rendszert,  6-os futási szintre váltással tudjuk
       leállítani, és 1-es futási szinttel  leviszzük  "single  user  mode"-ba
       vagyis  egy  felhasználó  használhatja  csak.  Az  S futási szintet nem
       igazán  direkt  használatra  tervezték,   sokkal   inkább   azoknak   a
       szkripteknek  amik  a  1-es  futási  szintre való belépéskor futnak le.
       További  információért  lásd  a  shutdown(8)  és  inittab(5)  kézikönyv
       oldlakat.

       A  7-9  futási szintek is értelmesek, de nincsenek igazán dokumentálva.
       Ez azért van, mert a "tradicionális"  UNIX  változatok  nem  használták
       őket.  Ha kiváncsi vagy, az S és s futási szintek igazából megegyeznek.
       Belső aliaszokról van szó, amik ugyanarra a futási szintre mutatnak.

BOOTOLÁS

       Miután az init meghívódik, a kernel boot szekvencia utolsó  lépéseként,
       megnézi  a  /etc/inittab  fájlt,  hogy  van-e  benne initdefault típusú
       bejegyzés (lásd inittab(5)).  Az initdefault bejegyzés határozza meg  a
       renszer alapértelmezett futási szintjét. Ha nincs ilyen bejegyzés (vagy
       abszolut nincs /etc/inittab fájl), a futási  szintet  a  konzolon  kell
       megadni.

       Az  S  és  s futási szintek "single user mode"-ba állítják a rendszert,
       ilyenkor nem kell /etc/initttab fájl.  "Single user  mode"-ban  az  op.
       renszer a /sbin/sulogin-t hívja meg a /dev/console-on.

       "Single  user  mode"-ba  való  belépéskor  az  init  leolvassa a konzol
       ioctl(2) állapotát a /etc/ioctl.save fájlból.  Ha nincs ilyen fájl,  az
       init  inicializálja  a  vonalat  9600 baud-al és CLOCAL beállításokkal.
       Amikor az init elhagyja a "single user  mode"-ot,  eltárolja  a  konzol
       ioctl  beállításait  a már említett fájlba, így ezek újrahasználhatók a
       leközelebbi alkalommal.

       Amikor először lépünk "multi-user mode"-ba (több  felhasználós  módba),
       az  init  végrehajtja a boot és a bootwait bejegyzéseket. Ez megengedi,
       hogy   az   operációs   rendszer   felcsatlakoztassa   (mount-olja)   a
       fájlrendszereket,  mielőtt  a felhasználók bejelenkeznének. Ezek után a
       futási szintnek megfelelő bejegyzések kerülnek végrehajtásra.

       Amikor  új  processzt  indít,  az  init  megnézi,  hogy   létezik-e   a
       /etc/initscript  fájl.   Ha  igen, ezt a szkriptet használja a processz
       indításához.

       Mindig amikor egy gyermek processz véget ér,  az  init  rögzíti  ezt  a
       tényt  és  a  halál  okát a /var/run/utmp és /var/log/wtmp fájlokba, ha
       ezek léteznek.

FUTÁSI SZINT VÁLTÁS

       Miután létrehozta az összes megadott processzt,  az  init  várja,  hogy
       valamelyik  leszármazott  processze  meghaljon,  hogy  elmenjen az áram
       ("powerfail" jel), vagy hogy a telinit futási szint váltást kérjen.  Ha
       a  fent  említett három lehetőség közül valamelyik megtörténik, az init
       újraolvassa a /etc/inittab  fájlt.   A  fájlhoz  adhatunk  bármikor  új
       bejegyzéseket.  Ettől  függetlenül az init mindig a fent említett három
       eset egyikére vár.  Ha mi akarjuk előidézni a frissítést, a  telinit  Q
       vagy  q  parancs  felébresztheti  az  initet,  hogy  az  újraolvassa  a
       /etc/inittab fájlt.

       Ha az init nem "single user"-ben van, és áramkimaradást jelző jelet kap
       (SIGPWR),   elolvassa  a  /etc/powerstatus  fájlt.  Ekkor  elindít  egy
       utasítást a már említett fájl tartalma alapján.

       F(AIL) Az  áram  kimaradt,  UPS  (szünetmentes  táp)  adja  az  áramot.
              Lefutnak a powerwait és powerfail bejegyzések.

       O(K)   Az   áramszolgáltatás   visszaállt.   Lefutnak   a   powerokwait
              bejegyzések.

       L(OW)  Az áram kimaradt és a szünetmentes akkumulátorai is  lemerültek.
              Lefutnak a powerfailnow bejegyzések.

       Ha  a  /etc/powestatus  nem létezik, vagy a F, O vagy L betűktől eltérő
       értékeket tartalmaz, az init úgy viselkedik, mintha  F  betűt  olvasott
       volna.

       A  SIGPWR  és a /etc/powerstatus használata nem javasolt.  Ha valaki az
       init-tel  akar  "beszélni"  inkább  a  /dev/initctl  vezérlő  csatornát
       használja - több dokumentációért lásd a sysvinit csomag forráskódját.

       Amikor  az  init-től  futási  szint  váltást  kérünk,  ez  először  egy
       figyelmeztető SIGTERM jelet küld minden processznek, ami  nincs  a  cél
       futási   szinten  definiálva.   Ez  után  vár  5  másodpercet,  mielőtt
       erőszakkal megölné  a  szóban  forgó  processzeket  a  SIGKILL  jellel.
       Megjegyzés:  az  init feltételezi, hogy az összes szóban forgó processz
       (és a leszármazottaik is) ugyan abban a processz  csoportban  maradnak,
       amit   az   init   eredetileg   létrehozott   nekik.  Ha  egy  processz
       megváltoztatja a processz csoportját, a leszármazottai már  nem  kapják
       meg  az  init  által  küldött jeleket. Ezeket a processzeket külön kell
       leállítani.

TELINIT

       A  /sbin/telinit  a  /sbin/init-hez  van  kapcsolva  (linkelve).    Egy
       karakteres  argumentumot  adhatunk  neki,  és  ő tobábbítja a megfelelő
       jeleket  az  init  felé.   A  következő   argumentumok   irányadóak   a
       telinit-nek:

       0,1,2,3,4,5 vagy 6
              megmondja az init-nek, hogy váltson az adott futási szintre.

       a,b,c  megmondja  az  init-nek, hogy csak azokat a bejegyzéseket hajtsa
              végre a  /etc/inittab  fájlból  amelyeknek  a,b  vagy  c  futási
              szintjük van.

       Q vagy q
              megmondja az init-nek, hogy olvassa újra a /etc/inittab fájlt.

       S vagy s
              megmondja az init-nek, hogy váltson "single user mode"-ba.

       U or u megmondja   az   init-nek,  hogy  induljon  újra  (megtartja  az
              állapotát). Nem olvassa újra a /etc/inittab-ot. A futási szint a
              következők  egyike  kell legyen: Ss12345. Ettől eltérő esetben a
              kérést a program csendesen figyelmen kívül hagyja.

       A telinit megmondhatja az init-nek, hogy mennyit várjon  a  SIGTERM  és
       SIGKILL  jelek  küldése  között.  Az  alapértelmezett  időintervallum 5
       másodperc, de megváltoztatható a -t sec opcióval.

       A telinit-et csak a megfelelő  privilégiummal  rendelkező  felhasználók
       hívhatják meg.

       Az init binárisan ellenőrzi, hogy az init vagy telinit-e, a processz id
       vizsgálatával; az  igazi  init  processz  id-je  mindig  1.   Ebből  az
       következik,  hogy a telinit helyett meghívhatjuk egyszerűen az init-et.

KÖRNYEZET

       Az   init  beállítja   a   következő   környezeti   változókat   minden
       gyermekénél:

       PATH   /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin

       INIT_VERSION
              A  neve magáért beszél. Hasznos, ha meg akarjuk állapítani, hogy
              egy szkript egyenesen az init-től származik-e.

       RUNLEVEL
              A rendszer aktuális futási szintje.

       PREVLEVEL
              Az előző futási szint (futási szint váltás után hasznos).

       CONSOLE
              A  rendszerkonzol.  Ez  általában  a  kerneltől  öröklődik.   Ha
              mégsincs  beállítva,  az  init alapértelmezésben /dev/console-ra
              állítja.

OPCIÓK BOOTOLÁSKOR

       Bootoláskor át lehet adni, a boot monitoron keresztül  (pl.  LILO),  az
       init-nek néhány opciót.  Az init a következő kapcsolókat fogadja el:

       S, single
            "Single  user  mode"  boot.  Ebben  a  módban  az  init  megnézi a
            /etc/inittab-ot  és  a   bootoláskor   futtatandó   rc   szkriptek
            végrehajtásra kerülnek a "single user mode"-ba való lépés előtt.

       1-5  Bootolás után választott futási szint.

       -b, emergency
            Egyenesen  "single user"-be jön fel ("single user" shell-t indít).
            Nem futtat semmilyen induláskor egyébként lefutó szkriptet.

INTERFÉSZ

       Az init egy fifo-n keresztül fülel  a  /dev-ben,  /dev/initctl-en,  itt
       várja  az  üzeneteket.   Ezt  használja  a  telinit  amikor  az inittel
       kommunikál.  Az interfész nincs  túl  jól  dokumentálva  és  fejlesztés
       alatt  áll.  Az érdeklődők az initreq.h fájlt tanulmányozhatják az init
       src/ alkönyvtárában, a forrás tar archívumában.

JELEK (SIGNALS)

       Az init a következő jelekre reagál:

       SIGHUP
            Az  init   megnézi,   hogy   léteznek-e   a   /etc/initrunlvl   és
            /var/log/initrunlvl fájlok.  Ha ezek közül az egyik létezik és egy
            ASCII runlevelt tartalmaz, az init bevált ebbe a runlevelbe.
             Ez csak a visszafel kompatibilits miatt van  gy!  .   Normális
            esetben (nem léteznek a fájlok) az init úgy viselkedik mint a
             telinit q.

       SIGUSR1
            Erre  a  jelre  az  init  bezárja,  majd  újra megnyitja a vezérlő
            fifoját, /dev/initctl-t. Hasznos bootszkriptek esetében  amikor  a
            /dev-et újracsatlakoztatjuk (újramountoljuk).

       SIGINT
            Normális  esetben  a kernel akkor küldi ezt a jelet az initnek, ha
            megnyomjuk a CTRL-ALT-DEL gombokat.   Ez  aktiválja  a  ctrlaltdel
            bejegyzést.

       SIGWINCH
            A  kernel  akkor  küldi ezt a jelet amikor a KeyboardSignal gombot
            megnyomjuk.  Ez aktiválja a kbrequest bejegyzést.

KOMPATIBILITÁS

       Az init kompatíbilis a System  V  inittel.   Szorosan  együttműködik  a
       /etc/init.d    és   a   /etc/rc{runlevel}.d   könyvtárakban   található
       szkriptekkel.  Ha a rendszered ezt a konvenciót  használja,  kell  hogy
       legyen  a /etc/init.d könyvtárban egy README nevű fájl ami leírja, hogy
       hogy működnek ezek a szkriptek.

FÁJLOK

       /etc/inittab
       /etc/initscript
       /dev/console
       /etc/ioctl.save
       /var/run/utmp
       /var/log/wtmp
       /dev/initctl

FIGYELMEZTETÉSEK

       Az init feltételezi, hogy a processzek és leszármazottjaik ugyanabban a
       processz  csoportban  maradnak,  ami  eredetileg nekik jött létre. Ha a
       processzek megváltoztatják a csoportjukat, az init  nem  tudja  megölni
       őket. A végeredmény lehet két, egy terminál vonalról olvasó processz.

DIAGNOSZTIKA

       Ha  az  init  észreveszi,  hogy  folyamatosan  újra  létrehoz egy adott
       bejegyzést több mint 10-szer 2 perc alatt, úgy fogja venni,  hogy  hiba
       van  a  megadott parancssorban. Generál egy hibaüzenetet a konzolra, és
       nem indítja újra a bejegyzésben szereplő programot 5 percig vagy addig,
       amíg  nem  kap  egy  jelet.  Ezzel  megelőzhető,  hogy az init rendszer
       erőforrásokat foglaljon le csak azért, mert valaki  szintaktikai  hibát
       ejtett  a  /etc/inittab  fájlban,  vagy  mert  a  bejegyzésben szereplő
       programot törölték.

SZERZŐK

       Miquel van Smoorenburg (miquels@cistron.nl), eredeti  kéziköny  oldalat
       írta Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de).

ÁSD MÉG

       getty(1),  login(1),  sh(1),  who(1), shutdown(8), kill(1), inittab(5),
       initscript(5), utmp(5)

MAGYAR FORDÍTÁS

       Kovács Emese <emese@eik.bme.hu>

                               1998. március 9.                        INIT(8)