World Map
Java Service Wrapper ist der einfachste Weg, um Ihr Produkt zuverlässiger, sicherer zu machen.
  • Free Trial
  • Buy Now

Problem

Wie kann ich meine Java-Anwendung als einen UNIX-Daemon ausführen?

Arrow

Lösung!

Der Java Service Wrapper erleichtert es, Ihre Java-Anwendung als ein Daemon-Prozess in sehr wenigen Schritten zu installieren und auszuführen.

Gewöhnlich werden Java-Anwendungen in einem Terminal auf UNIX-Systemen ausgeführt. Dies erfordert ein Benutzerkonto, dass ständig auf dem System eingeloggt ist, und eine geöffnete Eingabeaufforderung.

Es gibt ein paar Nachteile, die von Sicherheit, über Systemleistung bis zu dem Risiko reichen, dass ein User auf der Eingabeaufforderung die falsche Taste drückt und so die Java-Anwendung zwangsweise beendet.

Der Java Service Wrapper geht diese Probleme an, indem er es ermöglicht, Ihre Java-Anwendung als einen Daemon zu installieren. Es bietet automatische Erkennung der Dienstmanagementtools an (auch bekannt als init systems), die auf Ihrem Betriebssystem verfügbar sind oder es Ihnen ermöglicht, ein spezifisches, zu nutzendes System zu konfigurieren, wenn Sie Ihre Anwendung als einen Daemon starten.

Verwenden Sie Windows? Bitte überprüfen Sie unsere F+A für Windows.

Was ist ein Daemon?

UNIX-Daemone sind ähnlich zu Windows-Dienste. Sie erlauben Ihnen, Ihre Anwendung im Hintergrund auszuführen und werden automatisch beim Systemstart gestartet.

Das Problem ist, dass Java selbst nicht als ein Daemon ausgeführt werden kann. Der User tut etwas, was so einfach ist, wie sich von der Maschine auszuloggen, was Java dazu veranlässt, sich zu beenden.

Der Java Service Wrapper ermöglicht es nicht nur, sondern macht es einfach, jede Java-Anwendung als einen Daemon auszuführen. Es fügt auch fortschrittliche Failover-, Fehlerwiederherstellung-, und Analyse-Features hinzu, um sicherzustellen, dass Ihre Anwendung die maximal mögliche Laufzeit hat.

Einfache HelloWorldServer-Java-Klasse

Für dieses Beispiel nutzen wir eine einfache HelloWorldServer-Anwendung, die im Hintergrund abläuft. Bitte sehen Sie in die vollständige Anwendungsübersicht, um zu erfahren, wie die HelloWorldServer-Anwendung und ein Build für dieses Beispiel erstellt werden können.

Verpacken der HelloWorldServer-Klasse

Der erste Schritt, unsere HelloWorldServer-Klasse in einen Daemonen zu verwandeln, ist es, den Java Service Wrapper zu konfigurieren, unsere Anwendung auszuführen. Für die Mehrheit der Anwendungen kann dies ohne Schreiben von irgendwelchen Java-Code getan werden.

Verzeichnisstruktur

Der Wrapper ist sehr flexibel und kann eingerichtet werden, mit jeder Verzeichnisstruktur zusammenzuarbeiten. Für dieses Beispiel schlagen wir eine Verzeichnisstruktur vor, die eine saubere Struktur hat und sogar für ziemlich komplizierte Anwendungen wiederverwendet werden kann. Bitte erstellen Sie die folgende Verzeichnisstruktur unter einem beliebigen Verzeichnis Ihrer Wahl neu. Wir werden dieses Root-Verzeichnis %EXAMPLE_HOME% nennen. Dies ist eine Erweiterung der Verzeichnisstruktur, die in der HelloWorldServer-Übersicht beschrieben ist.

Verzeichnisstruktur:
%EXAMPLE_HOME%/
%EXAMPLE_HOME%/bin/
%EXAMPLE_HOME%/conf/
%EXAMPLE_HOME%/lang/
%EXAMPLE_HOME%/lib/
%EXAMPLE_HOME%/lib/classes/
%EXAMPLE_HOME%/logs/

Den Java Service Wrapper bekommen

Laden Sie sich bitte die letzte Version des Java Service Wrappers für Ihr Betriebssystem von der Download-Seite herunter, und extrahieren Sie diesen in ein Verzeichnis Ihrer Wahl. Wir werden das extrahierte Verzeichnis %WRAPPER_HOME% nennen.

Kopieren der Wrapper-Dateien

Der Java Service Wrapper unter UNIX besteht aus vier Hauptkomponenten: die Wrapper-Programmdatei, eine jar-Datei, eine native Bibliotheksdatei, die von der jar-Datei genutzt wird, und einem Shell-Skript, welches genutzt wird, um den Wrapper zu starten und Aktionen durchzuführen, wie z.B. diesen als einen Daemon zu überwachen. Bitte kopieren Sie diese Dateien, wie folgt:

Dateien kopieren:
%WRAPPER_HOME%/bin/wrapper -> %EXAMPLE_HOME%/bin/wrapper
%WRAPPER_HOME%/lib/wrapper.jar -> %EXAMPLE_HOME%/lib/wrapper.jar
%WRAPPER_HOME%/lib/libwrapper.so -> %EXAMPLE_HOME%/lib/libwrapper.so
%WRAPPER_HOME%/src/bin/sh.script.in -> %EXAMPLE_HOME%/bin/helloworldserver

Danach ist es notwendig, dass Sie die Skriptdatei ausführbar machen:

chmod +x helloworldserver

Lizenzschlüssel:

Die Standard und Professional Editionen des Java Service Wrappers erfordern einen ausführbaren Lizenzschlüssel. Der Wrapper wird mit einem einfachen Lizenzschlüssel ausgeliefert, der es Ihnen erlaubt, den Wrapper für 15 Minuten auszuführen. Bitte kopieren Sie diesen jetzt. Sie können eine langfristige Lizenz erhalten, indem Sie auf die Schaltfläche Kostenlose Testversion am Beginn der Seite klicken.

Kopieren Sie die Lizenzdatei:
%WRAPPER_HOME%/src/conf/wrapper-license-time.conf -> %EXAMPLE_HOME%/conf/wrapper-license.conf

Wrapper-Konfigurationsdatei:

Schließlich kopieren Sie die Standard-Wrapperkonfigurationsdatei herüber. Wir werden sie im nächsten Abschnitt editieren.

Kopieren Sie die Konfigurationsdatei:
cp $(WRAPPER_HOME)/src/conf/wrapper.conf.in $(EXAMPLE_HOME)/conf/wrapper.conf

Wrapper-Konfigurationsdatei

Öffnen Sie die $(EXAMPLE_HOME)/conf/wrapper.conf-Datei in dem Texteditor Ihrer Wahl.

Bitte finden und ändern Sie die folgenden Eigenschaften.

Konfigurationsdatei
wrapper.java.command=java
wrapper.java.command.loglevel=INFO

wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
wrapper.app.parameter.1=HelloWorldServer

wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/classes

wrapper.java.library.path.1=../lib

wrapper.logfile=../logs/wrapper.log
  • Die wrapper.java.command Eigenschaft wird genutzt, um den Ort des zu nutzenden Java-Befehls zu spezifizieren. Der Wert, den wir spezifiziert haben, wird im Systempfad durchsucht werden. Es ist auch möglich, einen absoluten Pfad zu spezifizieren.

  • Die wrapper.java.command.loglevel Eigenschaft ist optional, aber sie ist nützlich, hilfreich beim Debuggen der Java-Befehlszeile, die der Wrapper erzeugt. Wir empfehlen Ihnen daher, diese von Beginn an hinzufügen; aber sie kann auskommentiert werden, sobald Ihre Anwendung läuft.

  • Die wrapper.java.mainclass-Eigenschaft wird genutzt, um die Hauptklasse zu spezifizieren, die Java beim Start übergeben wird. Dies ist ein Punkt, der auf neue User verwirrend erscheinen kann, aber in den meisten Fällen, wird dies eher einer der Helper-Klassen des Wrappers sein als die Main-Klasse Ihrer Anwendung. Der Wrapper unterstützt mehrere Integrationsmethoden, aber für dieses Beispiel nutzen wir die einfachste Methode, Integrationsmethode #1 (WrapperSimpleApp), genannt. Diese Methode macht Gebrauch von der Helper-Klasse org.tanukisoftware.wrapper.WrapperSimpleApp, um die JVM-Nutzungszeit und die Backend-Kommunikation mit dem Wrapper zu verwalten. Soweit, brauchen Sie sich um diesen Punkt nicht zu kümmern.

  • Die eigentliche Hauptklasse unserer Anwendung HelloWorldServer wird unter Nutzung der wrapper.app.parameter.1-Eigenschaft als erster Parameter übergeben. Es ist möglich zusätzliche Parameter durch Hinzufügen zusätzlicher Eigenschaften mit wachsenden Indexen, zum Beispiel wrapper.app.parameter.2=P1, zu HelloWorldServer zu übergeben. .

    Wir zeigen sie nicht hier, aber es ist möglich durch Nutzung der wrapper.java.additional.<n> Eigenschaften, zusätzliche Java-Parameter hinzufügen. .

  • Der nächste Schritt ist, den Klassenpfad zu spezifizieren. Dies wird unter Nutzung der wrapper.java.classpath.<n>-Eigenschaften getan. Wir benötigen zwei Klassenpfad-Einträge für unsere Anwendung. Der erste ist, die benötigte wrapper.jar-Datei einzuschließen, die die Wrapper-Helper-Klassen beinhaltet. Der zweite beinhaltet das lib/classes-Verzeichnis, wo sich unsere HelloWorldServer-Klasse befindet.

  • Der Wrapper nutzt eine native Bibliothek, libwrapper.so, um einen Teil seiner Funktionalität zu implementieren. Native Bibliotheken werden von vielen Java-Anwendungen nicht genutzt, so kann es sein, dass Sie ihnen vorher nicht begegnet sind. Die wrapper.java.library.path.<n> Eigenschaften werden genutzt, um zu spezifizieren, wo sich diese Bibliotheken befinden. Soweit, brauchen Sie sich um diesen Punkt nicht zu kümmern.

  • Die Eigenschaft wrapper.logfile wird genutzt, um den Wrapper zu sagen, wohin seine Logdatei zu schreiben ist.

Wir haben den Wrapper nun mitgeteilt, wie unsere Java-Anwendung auszuführen ist.

Eine wichtige Sache, die es zu bezüglich aller Eigenschaftswerte zu beachten gilt, ist, dass sie stets mit Pfadwertenspezifiziert sind und dass sie relativ zum Speicherort der wrapper-Programmdatei sind.

Shell-Skript

Öffnen Sie die $(EXAMPLE_HOME)/bin/helloworldserver Shell-Skriptdatei im Texteditor Ihrer Wahl.

Irgendwo in der Nähe des Dateianfangs werden Sie zwei Variablen sehen: APP_NAME und APP_LONG_NAME. Bitte ersetzen Sie die Werte mit dem Namen Ihrer Anwendung.

Shell-Skript
# Application
APP_NAME="helloworldserver"
APP_LONG_NAME="Hello World Server"

Es gibt ein paar andere Variablen, die nützlich sind, um den Wrapper als einen Daemon zu konfigurieren; wir werden diese etwas später in diesem Tutorial betrachten.

Ausführen von HelloWorldServer in einem Terminal

Der Wrapper wurde jetzt eingerichtet. Lassen Sie uns beginnen, unsere Konfiguration durch Ausführen des Wrappers im Terminal zu testen.

Bitte öffnen Sie ein neues Terminal und gehen Sie in unser $(EXAMPLE_HOME)-Verzeichnis mittels des cd-Befehls. Der Wrapper und unsere verpackte Anwendung kann nun wie folgt gestartet werden:

bin/helloworldserver console

Beachten Sie bitte, dass der Speicherort der Konfigurationsdatei relativ zum Speicherort der Wrapper-Programmdatei ist. Dies mag intuitiv nicht so einleuchtend erscheinen, aber es erhöht die Zuverlässigkeit des Wrappers, wenn dieser über verschiedene Methoden gestartet wird, sehr.

Sie sollten, nachdem der Wrapper startet, etwas Ähnliches zur unteren Ausgabe sehen:

wrapper  | --> Wrapper Started as Console
wrapper  | Java Service Wrapper Professional Edition 64-bit {version}
wrapper  |   Copyright (C) 1999-2010 Tanuki Software, Ltd. All Rights Reserved.
wrapper  |     http://wrapper.tanukisoftware.com
wrapper  |
wrapper  | --------------------------------------------------------------------
wrapper  | Thank you for your interest in the Java Service Wrapper.
wrapper  |
wrapper  | You are running with a full featured trial License Key which will
wrapper  | allow you to run or restart the Java Service Wrapper as many times
wrapper  | as you like.  Each invocation of the Wrapper will shutdown
wrapper  | automatically after 15 minutes.
wrapper  |
wrapper  | This limited trial License Key is useful for quick configuration
wrapper  | tests on various machines without the need to request a trial
wrapper  | license.  If more time is required, you can also immediately obtain
wrapper  | a one-month Free trial license:
wrapper  |   http://wrapper.tanukisoftware.com/trial
wrapper  |
wrapper  | The Java Service Wrapper requires a License Key to activate the
wrapper  | software.  License Keys can be purchased on the Java Service Wrapper
wrapper  | web site:
wrapper  |   http://wrapper.tanukisoftware.com/purchase
wrapper  |
wrapper  | This trial License Key in intended for testing and development and
wrapper  | should not be used as part of a production environment.
wrapper  | --------------------------------------------------------------------
wrapper  | 
wrapper  | 
wrapper  | Launching a JVM...
wrapper  | Java Command Line:
wrapper  |   Command[0] : /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
wrapper  |   Command[1] : -Djava.library.path=../lib
wrapper  |   Command[2] : -classpath
wrapper  |   Command[3] : ../lib/wrapper.jar:../lib/classes
wrapper  |   Command[4] : -Dwrapper.key=sSRU9TooPnyds7IrRI2rFtKRHEgc8E4A
wrapper  |   Command[5] : -Dwrapper.port=32000
wrapper  |   Command[6] : -Dwrapper.jvm.port.min=31000
wrapper  |   Command[7] : -Dwrapper.jvm.port.max=31999
wrapper  |   Command[8] : -Dwrapper.pid=8557
wrapper  |   Command[9] : -Dwrapper.version=3.5.32-pro
wrapper  |   Command[10] : -Dwrapper.native_library=wrapper
wrapper  |   Command[11] : -Dwrapper.arch=x86
wrapper  |   Command[12] : -Dwrapper.cpu.timeout=10
wrapper  |   Command[13] : -Dwrapper.jvmid=1
wrapper  |   Command[14] : org.tanukisoftware.wrapper.WrapperSimpleApp
wrapper  |   Command[15] : HelloWorldServer
jvm 1    | WrapperManager: Initializing...
jvm 1    | Accepting connections on port: 9000

Das Banner am Loganfang existiert, weil wir eine vorübergehende Testlizenz benutzen. Es weist Ihnen hin, wo Sie eine langfristige Testlizenz bekommen oder später eine Lizenz kaufen können.

Die Zeilen, die der "Java-Befehlszeile:" folgen, zeigen alle Argumente des Befehls an, die der Wrapper nutzt, um die JVM zu starten. Das ist sehr nützlich, um Probleme zu lösen. Sobald es läuft, kommentieren Sie bitte die Eigenschaft wrapper.java.command.loglevel aus. Der Rest dieses Beispiels geht davon aus, dass Sie dies so getan haben.

Wenn Sie eine Lizenz gekauft haben, würden Sie Folgendes sehen:

wrapper  | --> Wrapper Started as Console
wrapper  | Java Service Wrapper Professional Edition 64-bit {version}
wrapper  |   Copyright (C) 1999-2010 Tanuki Software, Ltd. All Rights Reserved.
wrapper  |     http://wrapper.tanukisoftware.com
wrapper  |   Licensed to {licensee}
wrapper  |
wrapper  | Launching a JVM...
jvm 1    | WrapperManager: Initializing...
jvm 1    | Accepting connections on port: 9000

Sie können Ihre Anwendung jederzeit durch Drücken von STRG-C beenden. Der Wrapper behält stets einen Eintrag, warum eine Anwendung angehalten wurde; so können Sie etwas wie folgt in Ihrem Protokoll/Log sehen.

wrapper  | CTRL-C trapped.  Shutting down.
wrapper  | <-- Wrapper Stopped

Ausführen von HelloWorldServer als ein Daemon

Sobald die Wrapper-Konfiguration als korrekt überprüft wurde, können wir den Wrapper als einen Daemon installieren.

Installation des Daemons

Dies kann durch Nutzung des install-Befehls des Shell-Skripts, wie folgt, erledigt werden.

sudo bin/helloworldserver install

NOTE

Bitte beachten Sie, dass Sie root sein müssen, um dies tun zu können.

Sie sollten etwas Ähnliches zur Ausgabe unten sehen, was bestätigt, dass der Daemon installiert worden ist.

Detected Ubuntu or Debian:
Installing the Hello World Server Application daemon using systemd...
creating default service file...
Created symlink from /etc/systemd/system/multi-user.target.wants/testwrapper.service to /etc/systemd/system/testwrapper.service.

NOTE

Die Nachrichten mögen sich abhängig vom Betriebssystem und genutzten Servicemanagement-Tool für die Installation des Daemon unterscheiden. Das Gleiche gilt für andere Befehle, die unten auf dieser Seite angezeigt werden.

Starten des Daemons

Sie können jetzt, Ihren Daemon starten, indem Sie wieder die Shell-Skriptdatei als root benutzen.

sudo bin/helloworldserver install

Sie sollten etwas Ähnliches zur Ausgabe unten sehen, was bestätigt, dass der Daemon gestartet worden ist.

Waiting for Hello World Server Application...
running: PID:17548

Diese besagt, dass das Skript das Init-System ersucht, den Daemon zu starten, und wartet bis der Prozess als im Betrieb erkannt wurde und gibt dann die PID aus. Danach erlaubt der Terminal Ihnen andere Befehle einzugeben, aber der Wrapper wird weiterhin im Hintergrund laufen.

Sie können sich vergewissern, dass der Wrapper läuft, indem Sie die Logdatei öffnen oder durch Nutzen des status-Befehls:

$ bin/helloworldserver status
Hello World Server Application (installed with systemd) is running: PID:17548, Wrapper:STARTED, Java:STARTED

Dies besagt, dass der Wrapper gestartet ist und die Java-Anwendung erfolgreich startete.

Installieren und unmittelbares Starten des Daemons

Seit Version 3.5.28 hat das Skript auch den installstart-Befehl, um beides, eine Installation und ein unmittelbares Starten durchzuführen.

sudo bin/helloworldserver installstart

Wenn der Daemon sich erfolgreich installiert und startet, sollten Sie die folgende Ausgabe sehen:

Detected Ubuntu or Debian:
Installing the Test Wrapper Sample Application daemon using systemd...
creating default service file...
Created symlink from /etc/systemd/system/multi-user.target.wants/testwrapper.service to /etc/systemd/system/testwrapper.service.
Waiting for Test Wrapper Sample Application...
running: PID:20720

Anhalten des Daemons

Wenn Sie bereit sind, den Daemon zu beenden, können Sie den stop-Befehl der Shell-Skriptdatei als root benutzen.

sudo bin/helloworldserver stop

Sie können sich vergewissern, dass der Wrapper läuft, indem Sie die Logdatei öffnen oder durch Nutzen des status-Befehls:

$ bin/helloworldserver status
Hello World Server (installed with systemd) is not running.

Neustarten des Daemon

Der Daemon kann durch Nutzung der restart oder condrestart-Befehle neu gestartet werden. restart beendet den Daemon, wenn dieser läuft und startet dann diesen. Wenn der Daemon nicht läuft, wird der Befehl diesen einfach starten. condrestart startet den Daemon nur neu, wenn sich dieser im ausgeführten Zustand befindet.

sudo bin/helloworldserver restart
sudo bin/helloworldserver condrestart

Unterbrechen und Fortsetzen des Daemons

Seit der Version 3.5.31 kann der Wrapper durch Nutzen des Shell-Skripts unterbrochen und fortgesetzt werden. Aber zuerst müssen Sie ihn als unterbrechbar einstellen. Dies kann durch Auskommentieren der Zeile "#PAUSABLE=true" getan werden (Entfernen des '#'-Zeichen), die sich am Anfang des Skripts befindet. Bitte beachten Sie, dass der Daemon neu gestartet werden muß, damit diese Eigenschaft wirksam wird.

PAUSABLE=true

Unten im Skript sehen Sie die Zeile "#PAUSABLE_MODE=signals", die es ermöglicht, den Modus zu konfigurieren, der genutzt wird, um den Daemon zu unterbrechen und fortzusetzen. Aktuell sind zwei Modi verfügbar:

- 'signals', welcher SIGUSR1 und SIGUSR2 nutzt, um die Unterbrechen- und Fortsetzen-Aktionen an den Wrapper weiterzugeben

- 'file', welches die Befehlsdatei nutzt.

Der Standardwert ist 'signals', da dieser schneller auszuführen und sicherer ist, da es keine Notwendigkeit mehr gibt, sich um die Berechtigungen der Befehlsdatei zu kümmern.

PAUSABLE_MODE=signals

Jetzt können Sie den Wrapper starten und den Unterbrechen-Befehl ausführen. Die Ausgabe sollte wie folgt aussehen:

$ bin/helloworldserver pause
Pausing Hello World Server.

Sie können sich vergewissern, dass der Wrapper wirklich unterbrochen ist, indem Sie den status-Befehl nutzen:

$ bin/helloworldserver status
Hello World Server (installed with systemd) is running: PID:7050, Wrapper:PAUSED, Java:DOWN_CLEAN

Dann können Sie die Anwendung fortsetzen, indem Sie den Fortsetzen-Befehl nutzen:

$ bin/helloworldserver resume
Resuming Hello World Server.

Und sich vergwissern, dass der Wrapper wieder läuft, indem Sie den status-Befehl nutzen:

$ bin/helloworldserver status
Hello World Server (installed with systemd) is running: PID:7050, Wrapper:PAUSED, Java:DOWN_CLEAN

Deinstallation des Daemons

Der Wrapper ist aktuell konfiguriert, neuzustarten, wenn Ihr System neu gestartet wird. Da dies ein Test ist, möchten Sie sehr wahrscheinlich, den Daemon, wie folgt, entfernen:

sudo bin/helloworldserver remove

Sie sollten etwas Ähnliches zur Ausgabe unten sehen, was bestätigt, dass der Daemon deinstalliert worden ist.

sudo bin/testwrapper remove
Detected Ubuntu or Debian:
Stopping Test Wrapper Sample Application...
Test Wrapper Sample Application was not running.
Removing Test Wrapper Sample Application daemon from systemd...
Removed symlink /etc/systemd/system/multi-user.target.wants/testwrapper.service.

Beachten Sie, dass das Skript zuerst sicherstellen wird, dass der Wrapper nicht ausgeführt wird, bevor es diesen deinstalliert.

Nach der Deinstallation sollte der status-Befehl Folgendes zeigen:

$ bin/helloworldserver status
Hello World Server (not installed) is not running.

Auswählen des Servicemanagement-Tools

Abhängig von der Plattform gibt es verschiedene Systeme, mit denen ein Daemon installiert und ausgeführt werden kann. Zum Beispiel unter Linux werden gewöhnlich systemd, upstart, und initd genutzt. Unter AIX kann ein Daemon entweder mit SRC oder initd installiert werden.

Die Tabelle unten gibt einen Überblick der verschiedenen Servicemanagement-Tools, die seitens des Wrappers genutzt werden, um einen Daemon abhängig von der Plattform zu installieren. Diese ganz oben Aufgeführten sind mehr fortgeschritten und normalerweise bevorzugt.

Linux

AIX

MacOSX

FreeBSD
Andere UNIX-Plattformen
SystemdSrcLaunchdrc.dInit.d
UpstartInit.d
Init.d

Abhängig von der Distribution (Linux), der Betriebssystemversion und der Betriebssystemkonfiguration, kann es sein, dass einige der oben genannten Servicemanagement-Tools nicht installiert werden können. Das Wrapper-Shellskript hat jedoch die Fähigkeit zu erkennen, welche Servicemanagement-Tools auf dem PC vorhanden sind. Wann immer für ein gegebenes Betriebssystem mehrere Tools vorhanden sind (z.B. unter Linux und AIX), wird der Wrapper automatisch das Empfohlene in einer Prioritätsreihenfolge auswählen. Zum Beispiel wird unter Linux systemd gegenüber upstart bevorzugt, welches selbst wieder gegenüber initd bevorzugt wird. Dieses Standardverhalten wurde in der Version 3.5.31 eingeführt und wird durch die folgende Zeile, die sich recht nah am Anfang des Skripts befindet, konfiguriert:

SERVICE_MANAGEMENT_TOOL=auto

Sie mögen die Absicht haben, explizit ein anderes Servicemanagement-Tool zu spezifizieren als das automatisch seitens des Wrappers ausgewählte Tool. In diesem Fall würden Sie die oben genannte Eigenschaft mit dem Namen eines anderen Systems festlegen.

SERVICE_MANAGEMENT_TOOL=initd

NOTE

Bitte beachten Sie, dass der Daemon neu installiert werden muß, damit diese Eigenschaft wirksam wird.

Sie sollten nach Neuinstallation des Dienstes die folgende Ausgabe sehen:

$ sudo bin/helloworldserver install
Detected Ubuntu or Debian:
Installing the Hello World Server daemon using init.d..
 Adding system startup for /etc/init.d/helloworldserver ...
   /etc/rc0.d/K20helloworldserver -> ../init.d/helloworldserver
   /etc/rc1.d/K20helloworldserver -> ../init.d/helloworldserver
   /etc/rc6.d/K20helloworldserver -> ../init.d/helloworldserver
   /etc/rc2.d/S20helloworldserver -> ../init.d/helloworldserver
   /etc/rc3.d/S20helloworldserver -> ../init.d/helloworldserver
   /etc/rc4.d/S20helloworldserver -> ../init.d/helloworldserver
   /etc/rc5.d/S20helloworldserver -> ../init.d/helloworldserver

Anschließend wird der Daemon das nächste Mal, wenn er startet, initd verwenden.

WARNING

Wenn das spezifizierte Servicemanagement-Tool auf dem System nicht verfügbar ist oder wenn die Installation aus irgendeinem Grund mißlang, wird das Shellskript einen Fehlercode 1 zurückgeben.

Wenn Ihre Tests beendet wurden, vergessen Sie bitte nicht, den Daemon zu deinstallieren, um zu verhindern, dass dieser beim nächsten Systemstart startet.

Verweis: Starten Ihrer Anwendung mit dem Wrapper