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  futási  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é kompatibilitás 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)