Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 11617|Odpowiedź: 0

[linux] Zrozum katalog /etc/init.d oraz skrypty /etc/rc.local na systemach Linux

[Skopiuj link]
Opublikowano 13.11.2017 11:53:19 | | |
Angielska wersja tego artykułu pochodzi od: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/

1. O /etc/init.d
     Jeśli kiedykolwiek korzystałeś z systemu Linux, to słyszałeś o katalogu init.d. Do czego dokładnie służy ten katalog? Na koniec dnia robi tylko jedną rzecz, ale nie jest to błaha sprawa – jest wykonywana dla całego systemu, więc jest bardzo ważna. Katalog init.d zawiera wiele skryptów startu i stop dla różnych usług systemu. Steruje wszystkim od accpid po x11-common. Oczywiście, init.d jest dalekie od tego prostego. (Uwaga tłumacza: ACPID to nowy standard zarządzania energią dla systemów operacyjnych Linux; X11 nazywany jest także systemem X Window, system X Window (X11 lub X) to system okienny z wyświetlaniem bitmapowym. Jest to standardowy zestaw narzędzi i protokół do budowania graficznych interfejsów użytkownika na systemach Unix i podobnych do Unixa, a także na OpenVMS, i może być używany niemal we wszystkich nowoczesnych systemach operacyjnych.
    Patrząc na katalog /etc, znajdziesz wiele katalogów istniejących w formie rc#.d (gdzie # oznacza określony poziom inicjalizacji, zakres wynosi 0~6). W tych katalogach znajduje się wiele skryptów kontrolujących proces. Te pisma zaczynają się albo na "K", albo na "S". Skrypty zaczynające się na K działają przed skryptami zaczynającymi się na S. To, gdzie te skrypty zostaną umieszczone, zdecyduje, kiedy zaczną działać. Dzięki tym katalogom usługi systemowe współpracują ze sobą jak zdrowa maszyna. Jednak czasem chcesz rozpocząć lub zabić proces czysto, bez użycia komend kill lub killall. I właśnie tutaj przydaje się /etc/init.d!
    Jeśli korzystasz z systemu Fedora, znajdziesz ten katalog: /etc/rc.d/init.d. Właściwie działa to samo, niezależnie od tego, gdzie umieścisz init.d.
     Aby móc używać skryptów w katalogu init.d, potrzebujesz uprawnień root lub sudo. Każdy skrypt będzie uruchamiany jako polecenie, które jest skonstruowane mniej więcej następująco:
     /etc/init.d/command option
     COMAND to faktyczne polecenie, które się uruchamia, a opcje mogą wyglądać następująco:
start
Stop
Przeładowanie
Restart
Przeładowanie wymuszone
       W większości przypadków używasz opcji start, stop, restart. Na przykład, jeśli chcesz wyłączyć sieć, możesz użyć takiego polecenia:
     
         /etc/init.d/networking stop
        Inny przykład to zmiana ustawień sieci i konieczność restartu sieci. Możesz używać takich komend:
        /etc/init.d/restart sieciowy
        Najczęściej używane skrypty inicjalizacyjne w katalogu init.d to:
      
Networking
Samba
apache2
FTPD
SSHD
gołębnik
mysql
         Oczywiście możesz mieć inne, bardziej powszechnie używane skrypty, w zależności od zainstalowanego systemu Linuxa.
2. O /etc/rc.local
      rc.local to też skrypt, którego często używam. Skrypt jest wykonywany po uruchomieniu skryptu na poziomie inicjalizacji systemu, więc bezpiecznie jest dodać skrypt, który chcesz wykonać po uruchomieniu systemu. Często można dodać do niego skrypt NFS mount/mount. Możesz też dodać polecenia skryptowe do debugowania wewnątrz. Na przykład spotkałem się z sytuacją, gdzie usługa samba zawsze nie działa poprawnie, a inspekcja pokazuje, że samba powinna się uruchomić i wykonać podczas uruchamiania systemu, czyli konfiguracja demona samby gwarantuje, że funkcja ta jest poprawnie wykonana. W takim przypadku zwykle nie poświęcam dużo czasu na szukanie dlaczego, po prostu muszę dodać tę linijkę do skryptu /etc/rc.local:
          /etc/init.d/samba start
     W ten sposób problem wyjątku usług SAMBA został pomyślnie rozwiązany.

3. Podsumowanie
         Linux jest elastyczny. Dzięki swojej elastyczności zawsze możemy znaleźć wiele różnych sposobów rozwiązania tego samego problemu. Dobrym przykładem jest uruchomienie usługi systemowej. Dzięki skryptowi w katalogu /etc/init.d, połączonemu z potężnym narzędziem /etc/rc.local, możesz być pewien, że Twoja usługa będzie działać bez zarzutu.




Poprzedni:Asp.Net Pojawia się w EF6.0, nie ma stałej nazwy "System.Data.SqlClient"...
Następny:Plik konfiguracyjny MySQL my.cnf jest szczegółowo wyjaśniony
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com