Aby właściwie dodać usługi i skrypty podczas uruchamiania w Debian 11, musisz utworzyć jednostki systemowe. Ten samouczek koncentruje się na jednostkach systemowych, jeśli szukasz szybkich instrukcji do uruchomienia skryptu podczas rozruchu, przeskakuj prosto do urządzenia tworzenia systemu, aby uruchomić skrypt w sekcji rozruchowej.
Co to jest jednostka systemowa?
Jednostki systemowe to pliki konfiguracyjne zawierające informacje do właściwego zarządzania lub wykonywania niektórych plików systemowych. Jednostki systemowe mogą być wykorzystywane do zarządzania usługami, gniazdami, urządzeniami, punktami montażowymi, punktami automount, plików lub partycji, cel start-up, ścieżka systemu plików, kontrolowane i nadzorowane przez systemD, plasterek do zarządzania zasobami lub grupy grupy lub grupy zewnętrznie utworzonych procesów.
Jednostki systemowe znajdują się w katalogu /etc/systemd/system. Każdy skrypt, który chcesz uruchomić przy uruchomieniu za pomocą jednostek SystemD, musi być określony w pliku (jednostce) w tym katalogu.
Szybki widok za pomocą polecenia LS pokaże nam istniejące jednostki systemowe w naszym systemie.
LS/ETC/Systemd/System
Jednym z plików, które nie zostały uwzględnione na powyższym zrzucie ekranu kocur.praca którego treść wydaje się następującym obrazem.
Notatka: Poniższe informacje są w celu zapoznania się z plikami konfiguracji jednostki. Nie martw się, urządzenie, które utworzysz, aby uruchomić skrypt, będzie prostszy.
Gdzie dyrektywy [jednostki]:
Opis: Ta dyrektywa umożliwia dodanie opisu urządzenia, tutaj możesz ustawić nazwę urządzenia do zidentyfikowania.
Chce: Tutaj możesz określić zależności jednostkowe. Uwaga istnieją różne dyrektywy w tym podobnym celu. Na przykład dyrektywa Wymaga służy do określenia ścisłych zależności, bez których urządzenie nie może działać. Wbrew wymaganiu, potrzeby są używane do określenia zależności, bez których urządzenie może działać.
Po: Obecna jednostka rozpocznie się po urządzeniu określonej w niniejszej dyrektywie.
[Service] Dyrektywy sekcji:
Typ: W poprzednim przykładzie rozwidlenie wskazuje, że usługa zostanie zabita, zachowując procesy dziecięce, które należy przypisać PID.
Środowisko: Tutaj możesz określić zmienne środowiska jednostki.
ExecStart: Ta dyrektywa pozwala określić ścieżkę i polecenia, które chcesz wykonać.
Execstop: Możesz określić polecenie używane do zatrzymania urządzenia.
Successexitstatus: Ta dyrektywa umożliwia określenie statusu wyjścia i sygnałów.
Użytkownik: Możesz określić właściciela użytkownika urządzenia.
Grupa: Możesz określić właściciela grupy urządzenia.
Umask: Możesz określić maskę użytkownika.
Restartsec: Jeśli urządzenie ponownie uruchomi się automatycznie, tutaj możesz określić czas, aby poczekać na ponowne ponowne uruchomienie usługi.
Uruchom ponownie: Możesz zdefiniować dla SystemD, gdy urządzenie powinno zostać ponownie uruchomione. Dostępne opcje to zawsze, na tle, na bieżąco, na bieżąco, na obserwator i nabrzeże.
Dyrektywa [instaluj] w powyższym przykładzie jest poszukiwana.
Wanted: Ta dyrektywa pozwala zdefiniować jednostkę jako zależność; Jest podobny do Chce dyrektywa, ale określenie, czy bieżąca jednostka jest uważana za zależność przez inną jednostkę.
Inne popularne dyrektywy w sekcji [jednostki], które nie zostały zawarte w poprzednim zrzucie ekranu:
Wymaga: W tej dyrektywie możesz określić zależności, aby zapobiec awarii rozruchu. Wbrew Chce dyrektywa, jeśli zależność określona w wymaganej dyrektywie nie jest spełniona, urządzenie nie będzie działać.
W sekcji [Service]:
Pidfile: Dyrektywa o rozwidleniu wymaga dyrektywy PIDSFILE, która zawiera ścieżkę do pliku PID procesu dziecięcego, aby systemd mógł ją zidentyfikować.
StartLimitInterval: Wskazuje, że urządzenie ma 60 sekund dla 10 prób ponownego uruchomienia po awarii.
StartLimitburst: Ta dyrektywa wskazuje limit prób, w poprzednim przykładzie, 10 prób w 60 sekund.
Aby uzyskać dodatkowe informacje na temat jednostek systemowych, możesz przeczytać:
https: // manpages.Debian.org/jessie/systemd/systemd.jednostka.5.en.html.
Tworzenie jednostki systemowej, aby uruchomić skrypt podczas rozruchu na Debian 11
Uruchamianie skryptu w rozruchu może być prostsze i zawierać mniej konfiguracji niż kocur.praca Plik wcześniej używany do pokazywania wspólnej treści urządzenia.
Jak wspomniano wcześniej, pliki (jednostki) zawierające informacje o skryptach działających w rozruchu znajdują się w katalogu /etc/systemd/system. Aby zdefiniować skrypt do uruchomienia w rozruchu, musisz utworzyć nową jednostkę dla tego skryptu. Aby utworzyć jednostkę poniżej /etc/systemd/system, Możesz użyć Nano, jak pokazano w poniższym przykładzie, w którym tworzę wymienioną jednostkę scenariusz.praca, Możesz go wymienić, ponieważ uważasz wygodne zidentyfikowanie skryptu.
sudo nano/etc/systemd/system/skrypt.praca
Treść urządzenia dla twojego skryptu będzie prostsza niż kocur.praca używane jako przykład wcześniej.
Skopiuj i wklej następujący kod do utworzonego pliku /etc/systemd/system.
Notatka: Zastępować z nazwą skryptu i ze ścieżką do twojego skryptu.
[Jednostka]
Opis = nazwa twojego skryptu tutaj
Po = domyślnie.cel
[Praca]
ExecStart =/ścieżka/do/skrypt.cii
[Zainstalować]
Wantby = Domyślnie.cel
Po skopiowaniu treści do pliku poniżej /etc/systemd/system/, musisz włączyć go za pomocą polecenia SystemCtl, jak pokazano poniżej. Zastępować z prawidłową nazwą przypisaną do urządzenia.
Teraz twój scenariusz jest gotowy do uruchomienia w Debian 11.
Wniosek
Jak widać, uruchamianie skryptów w rozruchu w Debian 11 za pomocą SystemD jest dość proste. Każdy poziom użytkownika Linux może wykonać to zadanie, tworząc prosty plik w katalogu jednostek. Oczywiście Linux oferuje dodatkowe metody uruchamiania skryptów w rozruchu, które nie zostały opisane w tym samouczku, takie jak Cron. Każdy użytkownik Linux powinien wiedzieć, jak zlokalizować jednostki systemowe do uruchamiania usług lub wymaganych skryptów podczas uruchamiania. Zarówno jednostki systemowe, jak i cron są akceptowanymi metodami, a RC.lokalne lub init.D skrypty są przestarzałe.
Dziękujemy za przeczytanie tego samouczka wyjaśniającego, jak uruchomić skrypty w rozruchu za pomocą SystemD w Debian 11. Śledź nas, aby uzyskać dodatkowe porady i samouczki Linux.