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

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére

Ha Linuxot használ, akkor valószínűleg hallottál erről init.d Könyvtár. 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 init.d nagyon fontos. A init.d A könyvtár számos start / stop szkriptet tartalmaz a rendszer különféle szolgáltatásaihoz. Mindent acpid nak nek x11-common a könyvtárból vezérelhető. Természetesen nem egészen olyan egyszerű.

Ha megnézed a /stb könyvtárban megtalálja az űrlapon lévő könyvtárakat rc # .D (Ahol # egy szám egy adott inicializációs 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 vagy '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 van a /etc/init.d/ a könyvtár hasznos.

Most, ha olyan disztribúciót használ, mint a Fedora, előfordulhat, hogy a könyvtár itt található /etc/rc.d/init.d . Helyétől függetlenül ugyanazt a célt szolgálja.

A benne található szkriptek bármelyikének ellenőrzése érdekében init.d manuálisan 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 parancs a tényleges futtatás és parancs VÁLASZTÁSI LEHETŐSÉG a következők egyike lehet:

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

Leggyakrabban az egyiket fogja használni start, stop, vagy újrakezd. 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 mit telepítettél. 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 a lehetőség a /etc/rc.local forgatókönyv. 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

ban,-ben /etc/rc.local forgatókönyv és Samba olyan varázslatosan működött. 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. A /etc/init.d/ rendszer (valamint a /etc/rc.local ) biztos lehet benne, hogy a szolgáltatás elindul.