Installationsstart der Anwendung nach Neustart (Debian Linux)

Erstellen von symbolischen Links in "/etc/init.d"

Der erste Schritt beim Einrichten der Anwendung, so dass diese sich korrekt beendet, wenn das System beendet wird und danach beim Systemstart in der korrekten Reihenfolge hochstartet, ist es, einen symbolischen Link zum Anwendungsskript innerhalb des /etc/init.d-Verzeichnisses zu erstellen. Viele Anwendungen kopieren einfach ihr Daemon-Skript in dieses Verzeichnis, aber die Skripte des Wrappers erfordern, dass ein symbolischer Link genutzt wird, so dass der Speicherort von dem Rest der Dateien der Anwendung gefunden werden kann, ohne dass Änderungen am Skript notwendig sind.

Um einen symbolischen Link im Verzeichnis /etc/init.d zu erstellen, müssen Sie ein "Root"-User sein. Geben Sie einfach die folgende Sequenz an Befehlen ein.

ln -s /usr/lib/myapp/bin/myapp /etc/init.d/myapp

Überprüfen Sie nun, dass der symbolische Link korrekt funktioniert, indem Sie das aktuelle Verzeichnis auf /etc/init.d ändern und den folgenden Befehl ausführen.

./myapp console

Stellen Sie sicher, dass Sie diesen als "Root"-User ausführen, da dies der Fall sein wird, wenn die Anwendung beim Systemstart gestartet wird. Es ist ziemlich üblich, dass es hier Unterschiede zwischen der Login-Umgebung des "Root"-Users und des Users, mit dem Sie normalerweise eingeloggt sind, geben kann. Diese Unterschiede können Probleme verursachen, wie z.B., dass man die JVM nicht auffinden kann.

Die Anwendung sollte normal starten. Drücken Sie STRG-C, um die Anwendung zu beenden.

Die Ausführungsebenen registrieren

Sie werden ggf. wünschen, dass Ihre Anwendung auf allen Mehrbenutzer-Ausführungsebenen gestartet und für die Halt-, Single-user und Neustart-Ausführungsebenen beendet werden kann. Dies kann durch das Ändern des aktuellen Verzeichnisses auf /etc/init.d und darauffolgendes Ausführen des update-rc.d-Befehls als ein "Root"-User erreicht werden:

update-rc.d myapp start 20 2 3 4 5 . stop 20 0 1 6 .

Sie sollten die folgende Ausgabe sehen:

 Adding system startup for /etc/init.d/myapp ...
   /etc/rc0.d/K20myapp -> ../init.d/myapp
   /etc/rc1.d/K20myapp -> ../init.d/myapp
   /etc/rc6.d/K20myapp -> ../init.d/myapp
   /etc/rc2.d/S20myapp -> ../init.d/myapp
   /etc/rc3.d/S20myapp -> ../init.d/myapp
   /etc/rc4.d/S20myapp -> ../init.d/myapp
   /etc/rc5.d/S20myapp -> ../init.d/myapp

Die Umgebung während des Bootens ist ziemlich spärlich ausgestattet, so dass alle Verweise, die von den Pfad- und Umgebungsvariablen Gebrauch machen, fehlschlagen. Zu Ihrer eigenen Sicherheit, wenn Sie versuchen, neu zu starten, um Ihre Installation zu testen, wird empfohlen, dass Sie die Eigenschaft wrapper.logfile.loglevel auf DEBUG festlegen.

Sie können Ihr System nun neu starten, um Ihre Installation zu testen:

shutdown -r now

Wenn das System wieder hochfährt, wird es dann hoffentlich laufen.

Probleme?

Wenn Sie irgendwelche Probleme antreffen, dann prüfen Sie bitte die Logdatei, die ein paar Hinweise zu dem Problem enthalten sollte. Wenn der Test im vorherigen Abschnitt funktionierte, aber dieser misslang, dann ist das Problem sehr wahrscheinlich ein Problem mit fehlenden Umgebungsvariablen.

Die Reihenfolge kontrollieren:

Wenn Ihre Anwendung von anderen Diensten Gebrauch macht, z.B. MySQL, dann werden Sie sicherstellen müssen, dass Ihre Anwendung nach MySQL gestartet wurde, und dann vor MySQL beendet wird. Dies wird durch Kontrolle der Reihenfolge beim Hochstarten/Beenden erreicht. Standardmäßig startet und beendet sich MySQL mit einer Reihenfolge 20, so können wir das gewünschte Verhalten Ihrer Anwendung durch Nutzen der Hochstarten-Reihenfolge 21 und der Beenden-Reihenfolge 19 erhalten.

update-rc.d myapp start 21 2 3 4 5 . stop 19 0 1 6 .

Löschen der Registrierung der Ausführungsebenen

Um die Registrierung der Ausführungsebenen, wie sie im vorherigen Abschnitt registriert wurden, zu löschen, führen Sie bitte den folgenden Befehl aus.

update-rc.d -f myapp remove

Verweis: Starten Ihrer Anwendung mit dem Wrapper