Zoznámte sa s Linuxom: Adresár /etc/init.d

Vyskúšajte Náš Nástroj Na Odstránenie Problémov

Ak používate Linux, pravdepodobne ste už počuli o init.d adresár. Čo presne však tento adresár robí? Nakoniec to robí jednu vec, ale robí jednu vec pre celý váš systém init.d je veľmi dôležité. init.d adresár obsahuje množstvo skriptov spustenia / zastavenia pre rôzne služby vo vašom systéme. Všetko od acpid na x11-common je ovládaný z tohto adresára. Samozrejme to nie je také jednoduché.

Ak sa pozriete na /atď adresár nájdete adresáre, ktoré sú vo forme rc # .D (Kde # je číslo odráža špecifickú úroveň inicializácie - od 0 do 6). V každom z týchto adresárov je množstvo ďalších skriptov, ktoré riadia procesy. Tieto skripty začínajú buď „K“ alebo „S“. Všetky skripty „K“ sa spúšťajú pred skripty „S“. A v závislosti na tom, kde sú skripty umiestnené, určí, kedy sa skripty začnú. Medzi adresármi systémové služby spolupracujú ako dobre naolejovaný stroj. Ale sú chvíle, keď musíte spustiť alebo zastaviť proces čisto a bez použitia príkazov kill alebo killall. To je miesto, kde /etc/init.d adresár sa hodí.

Ak teraz používate distribúciu, ako je Fedora, môžete tento priečinok nájsť v adresári /etc/rc.d/init.d , Bez ohľadu na umiestnenie slúži na rovnaký účel.

Aby ste mohli ovládať ktorýkoľvek zo skriptov v systéme init.d ručne musíte mať root (alebo sudo) prístup. Každý skript sa spustí ako príkaz a jeho štruktúra bude vyzerať takto:

/etc/init.d/command OPTION

Kde príkaz je skutočný príkaz na spustenie a OPTION môže byť jedným z nasledujúcich spôsobov:

  • štart
  • zastávka
  • obnoviť
  • reštart
  • force-reload

Najčastejšie budete používať jeden štart stop, alebo reštart. Ak teda chcete zastaviť svoju sieť, môžete zadať príkaz:

/etc/init.d/networking stop

Alebo ak zmeníte svoju sieť a potrebujete ju reštartovať, môžete tak urobiť pomocou nasledujúceho príkazu:

/etc/init.d/networking restart

Niektoré z najbežnejších init skriptov v tomto adresári sú:

  • networking
  • samba
  • apache2
  • ftpd
  • sshd
  • holubník
  • mysql

Vo vašom adresári samozrejme môžu byť častejšie používané skripty - záleží to na tom, čo máte nainštalované. Vyššie uvedený zoznam bol prevzatý z inštalácie Ubuntu Server 8.10, takže štandardná inštalácia pracovnej plochy by obsahovala niekoľko menej skriptov sieťového typu.

Ale čo /etc/rc.local

Existuje tretia možnosť, ktorú som použil dosť. Táto možnosť je /etc/rc.local script. Tento súbor sa spustí po spustení všetkých ostatných skriptov na úrovni iniciácie, takže je bezpečné zadávať rôzne príkazy, ktoré chcete vydať pri štarte. V tomto skripte som mnohokrát umiestnil montážne pokyny pre veci ako nfs. Je to tiež dobré miesto na umiestňovanie skriptov na riešenie problémov. Napríklad, keď som mal stroj, z ktorého sa samba z nejakého dôvodu zdalo, že nechce začať. Dokonca som skontroloval, či je démon Samba pripravený na inicializáciu pri štarte systému. Takže namiesto toho, aby som trávil všetok svoj čas vopred, jednoducho som vložil riadok:

/etc/init.d/samba start

v /etc/rc.local scenár a Samba pracovali ako kúzlo. Nakoniec by som sa vrátiť a problém vystreliť tento problém.

Záverečné myšlienky

Linux je flexibilný. Linux je tak flexibilný, že existuje takmer nevyhnutne veľa spôsobov, ako vyriešiť jeden problém. Jedným z takýchto problémov je spustenie systémovej služby. S pomocou /etc/init.d systém (ako aj /etc/rc.local ) si môžete byť celkom istí, že vaše služby sa začnú.