Provided by: manpages-hu_20010119-6_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)