tytuł właściwie podsumowuje.
jak dodać plik startup.sh i shutdown.sh mojej aplikacji serwera do sekwencji uruchamiania i zamykania systemu operacyjnego Debian?
W Debianie należy umieścić skrypty uruchamiania i zamykania aplikacji i usług /etc/init.d/
.
Debian udostępnia przykładowy skrypt /etc/init.d/skeleton
, który możesz zmodyfikować według własnych upodobań.
Gdy jest na miejscu, zadzwoń:
# update-rc.d YOURAPP defaults
Aby Debian dodał /etc/rc?.d/
dla ciebie dowiązania symboliczne.
Jeśli wolisz menu lub interfejs graficzny, spójrz na pakiet sysv-rc-conf
lub ksysv
.
Możesz wywołać swój skrypt z /etc/rc.local , przed wierszem z informacją o wyjściu 0
Jeśli chodzi o zamykanie aplikacji, sugerowałbym umieszczenie skryptu w /etc/rc0.d . Musisz nazwać go wielką literą K , a następnie dwucyfrową liczbą, która określa kolejność uruchamiania tych skryptów, a następnie nazwę. Zostanie wywołany z parametrem „stop”, ale można to zignorować w przypadku prostego skryptu zatrzymania.
Na początek spójrz na to .
Aby zamknąć system, utwórz link / skopiuj skrypt do jednego z folderów /etc/rcX.d, gdzie X jest poziomem uruchomieniowym, w którym chcesz go uruchomić. 0 to poziom zamknięcia systemu Debian.
źródło
Najłatwiej jest zmodyfikować istniejące skrypty, działa w moim systemie, używane do dźwięków :)
/etc/init.d/rc.local
, dodanie sh na końcu pliku, przed: (wykona go tuż przed „ekranem” logowania)/etc/init.d/halt
, dodaj sh na początku pliku, zaraz po początkowych komentarzach (zostanie on wykonany przed właściwym poleceniem zamknięcia, które jest wywoływane przez ten plik skryptu/etc/init.d/reboot
źródło
Od Debiana Jessie stary
init
program został zastąpiony przezsystemd
!Sprawdź to sam. Uruchom:
ls -l /sbin/init
i zobacz, na co to wskazuje. Obecnie wskazuje nasystemd
(/sbin/init -> /lib/systemd/systemd
), nowszy i lepszy program inicjalizacyjny.TAK WYBRANE I INNE ODPOWIEDZI TUTAJ SĄ TERAZ NIEAKTUALIZOWANE !!!
* Chociaż nadal można instalować skrypty w stary sposób za pomocą narzędzi System-V, ogólnie nie jest to dobry pomysł.
man systemd.service
mówi:*Dla nowszych systemów Debian (tj. Jessie, Stretch, Buster itp.)
To łatwiejsze niż myślisz. (-:
Oto nowa i preferowana metoda instalowania programów rozruchowych lub zamykających.
Ze
systemd
najpierw chcesz utworzyć plik jednostkową . Plik jednostkowy to głównie deklaracje, a nie kod.Następnie użyjesz
systemctl
polecenia, aby włączyć lub uruchomić tę jednostkę.systemd
wykonuje dla ciebie większość pracy, ułatwiając na przykład automatyczne uruchamianie krytycznego programu, jeśli ulegnie awarii lub zostanie zabity w inny sposób. Również zamyka twój program gdzie i kiedy powinien domyślnie, bez dodatkowej pracy z twojej strony.Zacznij uczyć się
systemd
tutaj:Z Debiana i gdzie indziej i itp i itd .
Strony podręcznika na początek:
man systemd.unit
- Informacje o plikach jednostek ogólnieman systemd.service
- Informacje o plikach jednostek serwisowych, np. Demony i programy uruchamiane pojedynczo.man systemctl
- Interfejs użytkownika wiersza poleceńman journalctl
- Zobacz dziennik tego, co zrobił systemdman systemd
- O samym programie initIstnieje również wiele innych rodzajów plików jednostkowych, np
man systemd.target
- dla grup i wspólnych zsynchronizowanych celów.Po zapoznaniu się z powyższymi informacjami podstawowymi, zacznij od,
man -k systemd
aby znaleźć inne powiązane strony podręcznika man.Cokolwiek robisz, na Debianie nie używaj żadnego z tych :
update-rc.d
- zainstaluj i usuń linki skryptów inicjujących w stylu System-Vsysv-rc-conf
- Konfiguracja poziomu uruchamiania dla SysV, taka jak linki skryptu inicjującegorunlevel
- Wydrukuj poprzedni i bieżący poziom pracy SysVBUM
- B oot U p M anager - graficzny edytor poziomów pracysystemadm
- Graficzny interfejs dla systemowego menedżera systemu i usług(BTW, autor powiedział mi przez e-mail, że jest teraz zbyt zepsuty).
PRZYKŁAD:
Ten plik jednostki uruchamia demona NoIP.com podczas uruchamiania i wyłącza go po wyłączeniu.
Ten demon, od czasu do czasu, wysyła mój aktualny adres IP zaktualizować DDNS ( D ynamic DNS ( D omain N ame S erwerze)) bazę danych, w ten sposób utrzymując moja domena wskazując na moim komputerze, gdziekolwiek ona podróżuje do.
Pliki tego urządzenia znajdują się w moim systemie w tym pliku ustawień:
/etc/systemd/system/noip2.service
Oto, co znajduje się w pliku jednostki:
Ręcznie uruchom plik jednostki (np. W celu przetestowania):
$ sudo systemctl start noip2
.$ sudo systemctl restart noip2
.$ sudo systemctl stop noip2
.Skonfiguruj system, aby automatycznie uruchamiał plik jednostki podczas uruchamiania lub zamykania:
$ sudo systemctl enable noip2
.$ sudo systemctl disable noip2
.Wyświetl dziennik
$ sudo journalctl -u noip2
źródło