Jak używać /etc /rc.Lokalny w BOOT

Jak używać /etc /rc.Lokalny w BOOT
RC.lokalny Skrypt w niektórych rozkładach Linuksa i systemach UNIX to superuser Script Startup, zwykle znajdujący się w katalogu/etc/etc/rc.D. Nazwa pliku RC odnosi się do uruchomienia sterowania.

RC.Lokalny to przestarzały skrypt prowadzony do celów kompatybilności dla systemów systemowych.

Kiedyś był to uniwersalny plik obecny w większości dystrybucji Linux ze względu na jego prostotę dla administratorów Linux w celu zdefiniowania skryptów uruchamiania lub dodatkowych usług na rozpoczęcie.
Plik rc.Lokalny nie zawiera informacji o komponentach uruchamiania systemu, ale tylko komponenty zdefiniowane. Jednak nie wszystkie programy uruchamiania głównego są opisane w RC.lokalne, ale tylko te, które nie zakłócają komponentów systemowych. Zwykle RC.Lokalne jest wykonywane po uruchomieniu normalnych usług.

Nowsze systemy Linux, w tym SystemD, zastąpiły RC.lokalny scenariusz, ale pomimo tego można go przywrócić Bycie zalecanym rozwiązaniem. Ten samouczek pokazuje, jak przywrócić i używać RC.skrypt lokalny i używaj RC-Local przez systemd w nowszych dystrybucjach Linux.

Włączanie /etc /rc.Lokalne rozkłady w Linux za pomocą SystemD:

WAŻNY: Ważne jest, aby pamiętać /etc /rc.Lokalne jest przerwane i zastępowane. Obecna metoda uruchamiania skryptów w rozruchu jest opisana po instrukcjach, aby włączyć /etc /rc.lokalny. Ten samouczek jest przeznaczony dla użytkowników o określonych potrzebach.

Aby rozpocząć, utwórz plik /etc/rc.lokalny Korzystanie z edytora, którego chcesz i sudo (lub root):

nano /etc /rc.lokalny

Wklej poniższy kod w pliku i wymień z poleceniem, które chcesz uruchomić przy uruchomieniu. Nie używaj sudo. Jeśli polecenie zawarte w tym skrypcie nie uda się wykonywać, usługa, która wywoła RC.Lokalny (RC-Local.usługa) zawiedzie.

#!/bin/sh -e
#
# rc.lokalny
#
# Ten skrypt jest wykonywany na końcu każdego wielopasmowego poziomu.
# Upewnij się, że skrypt „wyjdzie z 0” o sukcesie lub w jakimkolwiek innym
# Wartość błędu.
#
# Aby włączyć lub wyłączyć ten skrypt, po prostu zmień wykonanie
# bity.
#
# Domyślnie ten skrypt nic nie robi.

Wyjście 0

W moim przykładzie użyję RC.skrypt lokalny do aktualizacji bazy danych skanowania bezpieczeństwa za każdym razem, gdy uruchamia się system. Możesz napisać dowolny skrypt, który chcesz być wykonywany na początku, z wyjątkiem skryptów sieciowych (takich jak iptables), które mogą zakłócać normalny proces uruchamiania i mieć własne skrypty lub katalogi uruchamiania.

Zapisz plik (Ctrl+x I Y) i daj mu uprawnienia do wykonania, uruchamiając poniższe polecenie:

sudo chmod +x /etc /rc.lokalny

Utwórz plik /etc/systemd/system/rc-lokal.praca, uruchomić:

nano/etc/systemd/system/rc-lokal.praca

Wklej następujące polecenia i wypuszczenie oszczędzania, naciskając Ctrl+x I Y.

ExecStart =/etc/rc.lokalny start
Timeoutsec = 0
Standardoutput = tty
Resztki autyczne = tak
SysvstartPriority = 99
[Zainstalować]
Wantby = Multi-User.cel

Włącz RC-Local:

Sudo Systemctl włącza RC-Local

Teraz możesz rozpocząć RC-Local.usługa, która odczytuje /etc /rc.Plik lokalny. Uruchom polecenie pokazane poniżej:

SystemCtl Start RC-Local.praca

Możesz sprawdzić, czy RC-Local został poprawnie załadowany, uruchamiając następujące:

Status SystemCtl RC-Local.praca

Prawidłowy sposób (SystemD):

Proces opisany powyżej jest stary, przestarzały i może zderzyć się z niektórymi usługami.
W tej sekcji pokazuje bieżący proces uruchamiania skryptów lub usług w rozruchu dla rozkładów Linux za pomocą SystemD.

SystemD to menedżer usług, który przypisuje grupy kontrolne usług (CGROUP) i śledzi procesy. SystemD to proces (PID) 1 odpowiedzialny za uruchamianie systemu.

Aby dodać usługi lub skrypty podczas uruchamiania, musisz utworzyć SystemD jednostka.
Jednostki systemowe obejmują usługi (.praca), Montaż punkty (.uchwyt), urządzenia (.urządzenie) lub gniazda (.gniazdo elektryczne). W przeciwieństwie do starego procesu opisanego wcześniej z RC.Lokalny, zamiast edytować ten sam plik zawierający informacje o skryptach użytkowników, musisz utworzyć jednostkę serwisową SystemD dla każdego skryptu, który chcesz uruchomić przy uruchomieniu.

Jednostki systemowe znajdują się pod adresem /etc/systemd/system, I tam musimy utworzyć jednostkę SystemD dla skryptu, który chcemy uruchomić podczas rozruchu.

Poniższy obraz pokazuje zawartość urządzenia TeamViewer.praca.

Gdzie dyrektywy [jednostki]:

  • Opis = Ta dyrektywa opisuje jednostkę; Możesz ustawić nazwę urządzenia.
  • Wymaga = Tutaj możesz określić zależności, aby zapobiec awarii uruchamiania.
  • Chce = Podobnie jak poprzedni, utrzymuje usługę, nawet jeśli nie znajdzie określonych zależności.
  • Po = Jednostka rozpocznie się po określonej w tej dyrektywie.

Niektóre dyrektywy używane w sekcji [Service] mogą być udostępnione [jednostce].

  • Typ = W przykładowym przykładu powyżej, rozwidlenie Wskazuje, że usługa zostanie zabita, utrzymując procesy dzieci, które należy przypisać PID.
  • Pidfile = Dyrektywa o rozwidleniu wymaga dyrektywy PIDS, która musi zawierać ścieżkę do pliku PID procesu dziecięcego, aby systemd mógł ją zidentyfikować.
  • ExecStart = Tutaj określasz ścieżkę i polecenia, które chcesz wykonać. Jest to podobne do RC.Plik lokalny.
  • Restart = Ta dyrektywa instruuje SystemD, kiedy uruchomić urządzenie. Dostępne opcje to twórcz.
  • StartLimitInterval = Ta dyrektywa wskazuje, że urządzenie ma 60 sekund dla 10 prób ponownego uruchomienia po awarii.
  • StartLimitBurst = Ta dyrektywa wskazuje limit prób, w powyższym przykładzie, 10 prób w 60 sekund.

Jedyną dyrektywa [instaluj] w powyższym przykładzie jest Wanted.

  • Wantby = Tutaj możesz określić tę jednostkę jako zależność; Jest podobny do dyrektywy w zakresie potrzeb, ale zdefiniowanie bieżącej jednostki jest uważane za zależność przez inną jednostkę.

Notatka: Możesz sprawdzić wszystkie dyrektywy systemowe pod adresem
https: // www.Freedesktop.org/oprogramowanie/systemd/man/systemd.dyrektywy.html

Dodanie własnej jednostki SystemD:

Aby uruchomić skrypt podczas uruchamiania, utwórz go pod /etc/systemd/system na przykład z jego nazwą, a następnie kropką i usługą, Linuxhint. Praca. Możesz użyć Nano jak w poniższej próbce:

Wklej następujące, zastępując <Nazwa lub opis skryptu> Z opisem twojego skryptu i gdzie /usr/sbin/linuxhint.cii Napisz poprawną ścieżkę.

[Jednostka]
Opis ==