init.d ist das alte, veraltete System zum Starten von Daemons. Dies wurde durch Emporkömmling ersetzt . Upstart hat den Vorteil, dass es viel einfacher zu konfigurieren ist und eine ordnungsgemäße Abfolge der Task-Initialisierung ermöglicht.
Die Konfigurationsdateien für upstart befinden sich in / etc / init. Wenn Ihr Daemon keine Voraussetzungen hat, kann dies so einfach sein wie 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
In diesem Fall können Sie diese Datei kopieren und nach Belieben ändern. Komplexere Konfigurationen lassen sich am besten auf der Upstart-Site und in anderen Einträgen in / etc / init dokumentieren.
als Antwort auf Kommentar hinzugefügt
Unabhängig davon, ob Sie upstart oder init.d verwenden, müssen Sie noch feststellen, wann Firebird ordnungsgemäß initialisiert wurde. Leider scheint Firebird selbst keine Möglichkeit zu haben, zu überprüfen, ob es installiert ist und ausgeführt wird . Daher ist die Empfehlung, Ihren Programmstart in /etc/rc.local zu speichern, sicherlich die einfachste, und auf Ubuntu wird - zumindest - garantiert so spät wie möglich im Bootprozess ausgeführt.
Wenn Sie nicht auf UPSTART migrieren möchten, sondern den klassischen Ansatz möchten, müssen Sie:
HINWEIS: Ich speichere den Dienst und das Programm unter demselben Namen in verschiedenen Verzeichnissen (Sie können dies jedoch ändern, sofern dies in Ihrer Dienstdatei enthalten ist). Ändere "myscriptname" und "myprogramname" in echte Namen!
Speichern Sie Ihr Programm, das als Dienst ausgeführt wird, in / usr / sbin
sudo cp myprogramname /usr/sbin/myscriptname
erstelle ein einfaches Startskript (benutze /etc/init.d/skeleton als Referenz)
Verschieben Sie dieses Skript nach /etc/init.d
sudo mv /etc/init.d/myscriptname
Gib diesem Skript die ausführbare Berechtigung (ich habe 775 verwendet, aber du kannst es niedriger einstellen)
sudo chmod 755 /etc/init.d/myscriptname
gehe zu /etc/init.d
cd /etc/init.d
In Startliste mit niedriger Startpriorität aufnehmen
sudo update-rc.d myscriptname defaults 97 03
Starten Sie Ihren Computer neu und überprüfen Sie, ob der Dienst ordnungsgemäß gestartet wurde
Wenn Ihr Dienst nicht ordnungsgemäß gestartet wird, sollten Sie zunächst prüfen, ob er ausgeführt wird, wenn er von Hand aufgerufen wird:
Unten füge ich eine Beispiel-Service-Datei hinzu, die tatsächlich funktioniert. Vergleichen Sie es mit dem Skeleton-Service, um zu verstehen, was Sie konfigurieren müssen. HINWEIS: Dies funktioniert unter Ubuntu 12.04 Amazon Cloud AWS EC2 Classic LAMP-Implementierung (auch unter Kubuntu 15.10).
quelle
Erstellen Sie eine Kopie von /etc/init.d/skeleton und bearbeiten Sie sie an den entsprechenden Stellen, um den Dienst zu starten / stoppen / neu zu starten. Es ist sehr gut kommentiert, so dass Sie in der Lage sein sollten, in kürzester Zeit ein funktionierendes init.d-Skript zu erstellen.
quelle
/etc/rc.local
quelle
pleaserun
ist ein Ruby-Skript, das versucht, das Problem des automatischen Erstellens eines Init-Skripts mit einem einzigen Befehl zu lösen. Zitat von seiner Seite:"Mit pleaserun können Sie die folgenden Starter / Skripte / was auch immer erzeugen:
launchd
Emporkömmling
systemd
runit
sysv init“
Es erkennt auch, welches Init-System verwendet wird, und generiert das Skript entsprechend.
quelle