Ismerje meg a Linuxot: Az /etc/init.d könyvtár

Ha Linuxot használ, akkor valószínűleg hallottál az init.d könyvtárról. De pontosan mit csinál ez a könyvtár? Végül egy dolgot csinál, de egy dolgot csinál az egész rendszer számára, tehát az init.d nagyon fontos. Az init.d könyvtár számos start / stop szkriptet tartalmaz a rendszer különféle szolgáltatásaihoz. A gyors és az x11 közönség közötti mindent ebből a könyvtárból vezéreljük. Természetesen nem egészen olyan egyszerű.

Ha megnézi az / etc könyvtárat, az rc # .d formátumú könyvtárakat talál (ahol # egy szám egy adott inicializálási szintet tükröz - 0-tól 6-ig). Ezen könyvtárak mindegyikében található számos más szkript, amely a folyamatokat vezérli. Ezek a szkriptek "K" vagy "S" betűkkel kezdődnek. Az összes "K" szkript az "S" szkriptek előtt fut. És attól függően, hogy a szkriptek hol helyezkednek el, meghatározzák, mikor kezdenek a szkriptek. A könyvtárak között a rendszerszolgáltatások úgy működnek, mint egy jól olajozott gép. De vannak olyan idők, amikor tiszta módon, a kill vagy a killall parancsok használata nélkül el kell indítania vagy le kell állítania a folyamatot. Itt hasznos az /etc/init.d könyvtár.

Most, ha olyan disztribúciót használ, mint a Fedora, akkor ezt a könyvtárat a /etc/rc.d/init.d könyvtárban találhatja meg. Helyétől függetlenül ugyanazt a célt szolgálja.

Az init.d parancsfájljai bármelyik kézi vezérléséhez root (vagy sudo) hozzáféréssel kell rendelkeznie. Minden szkriptet parancsként futtatunk, és a parancs felépítése a következőképpen néz ki:

/etc/init.d/command OPTION

Ahol a parancs a tényleges futtatáshoz használt parancs, és az OPTION a következők valamelyike ​​lehet:

  • Rajt
  • állj meg
  • reload
  • újrakezd
  • force-reload

Leggyakrabban az indítást, a leállítást vagy az újraindítást használja. Tehát ha meg akarja állítani a hálózatot, akkor kiadhatja a következő parancsot:

/etc/init.d/networking stop

Vagy ha módosít egy hálózatot, és újra kell indítania, akkor ezt a következő paranccsal teheti meg:

/etc/init.d/networking újraindítás

Ebben a könyvtárban a leggyakoribb init szkriptek vannak:

  • hálózatba
  • samba
  • apache2
  • ftpd
  • sshd
  • galambdúc
  • mysql

Természetesen előfordulhat, hogy a könyvtárban gyakrabban használt szkriptek vannak - ez attól függ, hogy telepítette-e. A fenti lista egy Ubuntu Server 8.10 telepítéséből származik, így a szokásos asztali telepítéshez kevesebb hálózati típusú szkript lenne.

De mi van az /etc/rc.local-val?

Van egy harmadik lehetőség, amelyet szoktam használni. Ez az opció az /etc/rc.local szkript. Ez a fájl az összes többi init szintű szkript futtatása után fut, tehát biztonságos különféle parancsok megadása, amelyeket indításkor ki kellett adnia. Sokszor a szkriptbe illesztési utasításokat teszek például az nfs-re. Ez szintén jó hely a "hibaelhárítási" parancsfájlok beillesztésére. Például, amikor volt egy gépem, amely valamilyen okból úgy tűnt, hogy a samba nem akarja elindulni. Még utólagos ellenőrzés is, hogy megbizonyosodjon arról, hogy a Samba démon beállítva-e az indításkor történő inicializáláshoz. Tehát ahelyett, hogy az összes időmet ezzel előzőleg eltöltöttem volna, egyszerűen feltettem a sort:

/etc/init.d/samba start

az /etc/rc.local szkriptben és Samba úgy viselkedett, mint egy varázsa. Végül visszajövök, és gondot okozhatnék a kérdésről.

Végső gondolatok

A Linux rugalmas. A Linux annyira rugalmas, hogy szinte elkerülhetetlenül számos módon megoldható egyetlen probléma. A rendszerszolgáltatás indítása az egyik ilyen probléma. Az /etc/init.d rendszer (valamint az /etc/rc.local ) segítségével biztos lehet benne, hogy a szolgáltatás elindul.