Seznamte se s Linuxem: Adresář /etc/init.d

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů

Používáte-li Linux, pravděpodobně jste o něm slyšeli init.d adresář. Ale co přesně tento adresář dělá? Nakonec to dělá jednu věc, ale dělá to jednu věc pro celý váš systém init.d je velmi důležité. init.d adresář obsahuje řadu spouštěcích / zastavovacích skriptů pro různé služby ve vašem systému. Všechno od kyselý na x11-common je ovládán z tohoto adresáře. Samozřejmě to není tak jednoduché.

Pokud se podíváte na /atd adresář najdete adresáře, které jsou ve formě rc # .d (Kde # je číslo odráží konkrétní úroveň inicializace - od 0 do 6). V každém z těchto adresářů je řada dalších skriptů, které řídí procesy. Tyto skripty začnou buď „K“ nebo „S“. Všechny skripty „K“ jsou spuštěny před skripty „S“. A podle toho, kde jsou skripty umístěny, určí, kdy se skripty inicializují. Mezi adresáři fungují systémové služby jako dobře naolejovaný stroj. Ale jsou chvíle, kdy musíte proces čistě spustit nebo zastavit a bez použití příkazů kill nebo killall. To je místo, kde /etc/init.d adresář se hodí.

Nyní, pokud používáte distribuci, jako je Fedora, můžete tento adresář najít v /etc/rc.d/init.d . Bez ohledu na umístění slouží stejnému účelu.

Aby bylo možné ovládat některý ze skriptů v init.d ručně musíte mít root (nebo sudo) přístup. Každý skript bude spuštěn jako příkaz a struktura příkazu bude vypadat takto:

/etc/init.d/command OPTION

Kde příkaz je skutečný příkaz ke spuštění a VOLBA může být jedním z následujících způsobů:

  • Start
  • stop
  • Znovu načíst
  • restart
  • force-reload

Nejčastěji budete používat jeden začátek Konec, nebo restart. Pokud tedy chcete zastavit síť, můžete zadat příkaz:

/etc/init.d/networking stop

Nebo pokud provedete změnu sítě a potřebujete ji restartovat, můžete tak učinit pomocí následujícího příkazu:

/etc/init.d/networking restart

Některé z běžnějších init skriptů v tomto adresáři jsou:

  • vytváření sítí
  • samba
  • apache2
  • ftpd
  • sshd
  • holubník
  • mysql

Ve vašem adresáři samozřejmě mohou být více často používané skripty - záleží na tom, co jste nainstalovali. Výše uvedený seznam byl převzat z instalace Ubuntu Server 8.10, takže standardní instalace na plochu by měla několik méně skriptů typu síťového typu.

Ale co /etc/rc.local

Existuje třetí možnost, kterou jsem používal docela dost. Tato možnost je /etc/rc.local skript. Tento soubor se spustí po spuštění všech ostatních skriptů na úrovni inicializace, takže je bezpečné vkládat různé příkazy, které chcete při spuštění vydat. Mnohokrát do tohoto skriptu umístím instrukce pro montáž věcí jako nfs. To je také dobré místo pro umístění skriptů pro odstraňování problémů. Například, když jsem měl stroj, který z nějakého důvodu vypadal, že samba nechce začít. Dokonce ifer kontrola, aby se ujistil, že démon Samba byl připraven k inicializaci při spuštění. Takže místo toho, abych trávil veškerý svůj čas dopředu, jednoduše jsem umístil linii:

/etc/init.d/samba start

v /etc/rc.local scénář a Samba fungovaly jako kouzlo. Nakonec jsem se vrátil a problém s tímto problémem vystřelil.

Závěrečné myšlenky

Linux je flexibilní. Linux je tak flexibilní, že existuje téměř nevyhnutelně mnoho způsobů, jak vyřešit jeden problém. Spuštění systémové služby je jedním z takových problémů. S pomocí /etc/init.d systém (stejně jako /etc/rc.local ) si můžete být docela jisti, že vaše služba začne.