Poznaj Linuksa: katalog /etc/init.d

Wypróbuj Nasz Instrument Do Eliminowania Problemów

Jeśli używasz Linuksa, najprawdopodobniej słyszałeś o init.d informator. Ale co dokładnie robi ten katalog? Ostatecznie robi jedną rzecz, ale robi tę jedną dla całego systemu, więc init.d to bardzo ważne. Plik init.d katalog zawiera wiele skryptów uruchamiania / zatrzymywania różnych usług w systemie. Wszystko z acpid do x11-common jest kontrolowany z tego katalogu. Oczywiście nie jest to takie proste.

Jeśli spojrzysz na /itp w katalogu znajdziesz katalogi, które są w formie rc # .d (Gdzie # to liczba oznacza określony poziom inicjalizacji - od 0 do 6). W każdym z tych katalogów znajduje się wiele innych skryptów sterujących procesami. Te skrypty będą się zaczynać od „K” lub „S”. Wszystkie skrypty „K” są uruchamiane przed skryptami „S”. I w zależności od tego, gdzie znajdują się skrypty, określi, kiedy skrypty zostaną zainicjowane. Między katalogami usługi systemowe współpracują ze sobą jak dobrze naoliwiona maszyna. Ale są chwile, kiedy trzeba rozpocząć lub zatrzymać proces w sposób czysty i bez używania poleceń kill lub killall. To jest, gdzie /etc/init.d katalog jest przydatny.

Jeśli używasz dystrybucji takiej jak Fedora, możesz znaleźć ten katalog w /etc/rc.d/init.d . Niezależnie od lokalizacji służy temu samemu celowi.

Aby kontrolować dowolny ze skryptów w init.d ręcznie musisz mieć uprawnienia roota (lub sudo). Każdy skrypt zostanie uruchomiony jako polecenie, a struktura polecenia będzie wyglądać następująco:

/etc/init.d/command OPCJA

Gdzie Komenda to rzeczywiste polecenie do uruchomienia i OPCJA może być jednym z następujących:

  • początek
  • zatrzymać
  • przeładować
  • uruchom ponownie
  • force-reload

Najczęściej będziesz używać jednego z nich zacząć zakończyć, lub uruchom ponownie. Więc jeśli chcesz zatrzymać swoją sieć, możesz wydać polecenie:

/etc/init.d/networking stop

Lub jeśli wprowadzisz zmianę w sieci i musisz ją ponownie uruchomić, możesz to zrobić za pomocą następującego polecenia:

/etc/init.d/networking restart

Niektóre z bardziej popularnych skryptów startowych w tym katalogu to:

  • sieć
  • samba
  • apache2
  • ftpd
  • sshd
  • gołębica
  • mysql

Oczywiście w twoim katalogu mogą znajdować się częściej używane skrypty - zależy to od tego, co zainstalowałeś. Powyższa lista została zaczerpnięta z instalacji Ubuntu Server 8.10, więc standardowa instalacja na komputerze stacjonarnym miałaby kilka mniej skryptów sieciowych.

Ale co z /etc/rc.local

Jest jeszcze trzecia opcja, z której często korzystałem. Ta opcja to /etc/rc.local scenariusz. Ten plik jest uruchamiany po uruchomieniu wszystkich innych skryptów poziomu inicjalizacji, więc można bezpiecznie umieścić różne polecenia, które chcesz wydać podczas uruchamiania. Wiele razy będę umieszczał instrukcje montowania rzeczy takich jak nfs w tym skrypcie. Jest to również dobre miejsce na umieszczenie skryptów „rozwiązywania problemów”. Na przykład kiedyś miałem maszynę, która z jakiegoś powodu wydawała się nie chcieć uruchamiać samby. Nawet po sprawdzeniu, czy demon Samby został skonfigurowany do inicjalizacji przy starcie. Więc zamiast spędzać cały mój czas z góry na tym, po prostu umieściłem linię:

/etc/init.d/samba start

w /etc/rc.local scenariusz i Samba działały jak urok. W końcu wrócę i rozwiążę ten problem.

Końcowe przemyślenia

Linux jest elastyczny. Linux jest tak elastyczny, że niemal nieuchronnie istnieje wiele sposobów rozwiązania pojedynczego problemu. Jednym z takich problemów jest uruchomienie usługi systemowej. Z pomocą /etc/init.d system (jak również /etc/rc.local ) możesz mieć pewność, że usługa zostanie uruchomiona.