init.d to stary, przestarzały system do uruchamiania demonów; został zastąpiony przez upstart . Zaletą Upstart jest to, że jest znacznie łatwiejszy do skonfigurowania i umożliwia prawidłowe sekwencjonowanie inicjalizacji zadania.
Pliki konfiguracyjne do uruchomienia na żywo w / etc / init, a jeśli twój demon nie ma żadnych wymagań wstępnych, może być tak prosty jak tty1.conf:
# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -8 38400 tty1
w takim przypadku możesz skopiować ten plik i zmodyfikować do smaku. Bardziej złożone konfiguracje najlepiej udokumentować na stronie upstart oraz w innych wpisach w / etc / init.
dodane w odpowiedzi na komentarz
Niezależnie od tego, czy korzystasz z wersji upstart, czy init.d, nadal będziesz potrzebować sposobu, aby ustalić, kiedy Firebird zostanie poprawnie zainicjowany. Niestety sam Firebird nie wydaje się dobrym sposobem na sprawdzenie, czy jest zainstalowany i działa . Dlatego zalecenie umieszczenia programu na starcie w /etc/rc.local jest z pewnością najłatwiejsze, a na Ubuntu - przynajmniej - gwarantuje się uruchomienie możliwie późno w procesie rozruchu.
jeśli nie chcesz migrować do UPSTART, ale chcesz mieć klasyczne podejście, musisz:
UWAGA: zapisuję usługę i program o tej samej nazwie w różnych katalogach (ale możesz to zmienić, o ile jest to odzwierciedlone w pliku usługi). zmień „myscriptname” i „myprogramname” na prawdziwe imiona!
zapisz swój program, który będzie działał jako usługa w / usr / sbin
sudo cp myprogramname /usr/sbin/myscriptname
utwórz podstawowy skrypt startowy (użyj /etc/init.d/skeleton jako odniesienie)
przenieś ten skrypt do /etc/init.d
sudo mv /etc/init.d/myscriptname
nadaj temu skryptowi uprawnienia (użyłem 775, ale możesz ustawić go niżej)
sudo chmod 755 /etc/init.d/myscriptname
goto /etc/init.d
cd /etc/init.d
uwzględnij na liście startowej o niskim priorytecie uruchamiania
sudo update-rc.d myscriptname defaults 97 03
uruchom ponownie komputer i sprawdź, czy usługa została poprawnie uruchomiona
jeśli twoja usługa nie uruchamia się poprawnie, powinieneś najpierw sprawdzić, czy działa po ręcznym wywołaniu:
poniżej dołączam przykładowy plik usługi, który faktycznie działa. porównaj to z usługą szkieletową, aby zrozumieć, co musisz skonfigurować. UWAGA: działa to na implementacji Ubuntu 12.04 amazon cloud AWS EC2 classic LAMP (także w Kubuntu 15.10).
źródło
Utwórz kopię pliku /etc/init.d/skeleton i edytuj ją w odpowiednich miejscach, aby uruchomić / zatrzymać / ponownie uruchomić usługę. Jest bardzo dobrze skomentowany, więc powinieneś być w stanie szybko stworzyć działający skrypt init.d.
źródło
/etc/rc.local
źródło
pleaserun
to skrypt ruby, który próbuje rozwiązać problem automatycznego tworzenia skryptu inicjującego za pomocą jednego polecenia. cytowanie z jego strony:„Dzięki proszę, możesz wygenerować następujące wyrzutnie / skrypty / cokolwiek:
uruchomiono
upstart
systemd
runit
sysv init "
Wykrywa również, który system init jest używany, więc odpowiednio generuje skrypt.
źródło