Odpowiedzi:
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.
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
Od Debiana Jessie stary init
program został zastąpiony przez systemd
!
Sprawdź to sam. Uruchom: ls -l /sbin/init
i zobacz, na co to wskazuje. Obecnie wskazuje na systemd
( /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:*
Jeśli żądana jest usługa pod określoną nazwą, ale nie znaleziono pliku konfiguracyjnego jednostki, systemd szuka skryptu inicjującego SysV o tej samej nazwie ... i dynamicznie tworzy jednostkę usługową z tego skryptu. Jest to przydatne ze względu na zgodność z SysV. Należy pamiętać, że ta kompatybilność jest dość obszerna, ale nie w 100%.
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ólnie
man 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ł systemd
man systemd
- O samym programie init
Istnieje 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 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:
# Comments can only go at the beginning of the line!
[Unit]
Description=Start the NoIP IP update daemon. This runs every 30 minutes and reports our current IP to NoIP.com to update Love2d.ddns.net.
Documentation=https://no-ip.com/
Documentation=file:///nobak/Installers/NoIP/noip-2.1.9-1/README.FIRST
[Service]
# 'forking' because process returns after starting daemon (traditional unix daemon).
Type=forking
# This program runs and returns, leaving the running daemon
ExecStart=/usr/local/bin/noip2
# Be in no hurry to start this. Max nice is +19.
Nice=15
# If it dies for any reason, then restart it
Restart=always
[Install]
# Installs a hook to use this unit file when the system boots or shuts down
WantedBy=multi-user.target
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