Services - Windows Systeme

Im Folgenden wird beschrieben, wie OpenSearch und Karaf als Windows Dienst eingerichtet werden.

OpenSearch

Falls auf dieser Maschine bereits ein OpenSearch-Service installiert sein sollte, muss ggf. in der Datei INSTALLATIONSVERZEICHNIS\opensearch\bin\opensearch-service.bat der neue Service umbenannt werden, da ein Service nicht zweimal mit demselben Namen installiert werden kann

Windows-Dienst installieren

Folgende Anweisung installiert den Dienst.

INSTALLATIONSVERZEICHNIS\opensearch\bin\opensearch-service.bat install bpc-opensearch

Windows-Dienst starten

Folgende Anweisung startet den Dienst.

INSTALLATIONSVERZEICHNIS\opensearch\bin\opensearch-service.bat start

Windows-Dienst konfigurieren

Nun sollte man noch den Dienst auf Automatisch stellen, damit er beim Neustart des Servers automatisch gestartet wird:

opensearch service windows config

Um die Speicher Optionen des Services anzupassen, muss man den Manager verwenden. Dieser wird wie folgt aufgerufen:

INSTALLATIONSVERZEICHNIS\opensearch\bin\opensearch-service.bat manager

Karaf

Im Karaf Directory INSTALLATIONSVERZEICHNIS\karaf\bin\contrib befinden sich die Dateien karaf-service-win.exe und karaf-service-win.xml.

Über die Datei karaf-service-win.exe können Sie den Service installieren, deinstallieren, starten und stoppen.

In karaf-service-win.xml müssen Sie die Platzhalter für den Service anpassen. Ersetzen Sie folgende Platzhalter:

  • %KARAF_SERVICE_NAME% - Name des Dienstes unter Windows. Beispiel: "Karaf"

  • %KARAF_SERVICE_PATH% - Basispfad der Karaf Installation. Beispiel: "C:\BPC\karaf"

  • %KARAF_SERVICE_EXECUTABLE% - Name der Datei, im Verzeichnis bin, mit der Karaf gestartet wird. Beispiel: "karaf.bat"

Alternativ können Sie die Platzhalter beibehalten. In dem Fall setzen Sie für das System oder den Betriebssystem-Nutzer, der den Karaf-Service starten soll, diese Umgebungsvariablen:

KARAF_SERVICE_NAME=Karaf
KARAF_SERVICE_PATH=C:\BPC\karaf
KARAF_SERVICE_EXECUTABLE=karaf.bat
Beispiel karaf-service-win.xml mit Platzhaltern für Umgebungsvariablen
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<service>
  <!--
    This script is provided as a template you can quickly customize by replacing
    the following variables:

      KARAF_SERVICE_NAME
      KARAF_SERVICE_PATH
      KARAF_SERVICE_EXECUTABLE

    For a detailed overview of the configuration options, please visit winsw home
    page (https://github.com/kohsuke/winsw)
  -->

  <!-- Required. Has to be unique among all the services installed in a system. Should consist entirely out of alpha-numeric characters. -->
  <id>%KARAF_SERVICE_NAME%</id>
  <!-- Optional. Has to be unique among all the services installed in a system. Short display name of the service, which can contain spaces and other characters. -->
  <name>%KARAF_SERVICE_NAME%</name>
  <!-- Optional. Long human-readable description of the service. -->
  <description>Apache Karaf Service mit ID "%KARAF_SERVICE_NAME%" für BPC</description>

  <!-- start -->
  <executable>%KARAF_SERVICE_PATH%\bin\contrib\%KARAF_SERVICE_EXECUTABLE%</executable>
  <startargument>daemon</startargument>

  <!-- stop -->
  <stopexecutable>%KARAF_SERVICE_PATH%\bin\contrib\%KARAF_SERVICE_EXECUTABLE%</stopexecutable>
  <stopargument>stop</stopargument>
  <stoptimeout>10sec</stoptimeout>

  <!-- log into the same directory as karaf. Size is in kbyte. -->
  <logpath>%KARAF_SERVICE_PATH%\data\log</logpath>
  <log mode="roll-by-size">
    <sizeThreshold>2048</sizeThreshold>
    <keepFiles>3</keepFiles>
  </log>

</service>

Windows-Dienst installieren

Mit folgendem Befehl wird der Service in Windows installiert. Anschließend kann er über die Windows-Dienste-Oberfläche gestartet und gestoppt werden.

Dieses Kommando erfordert üblicherweise ein Administrator-Konto. Danach sollte für den Dienst-Start ein Dienst-User mit eingeschränkten Rechten angelegt werden.

INSTALLATIONSVERZEICHNIS\karaf\bin\contrib\karaf-service-win.exe install

Weitere mögliche Operationen sind:

  • uninstall

  • stop

  • start

  • status

  • restart

Falls im Abschnitt Karaf die Umgebungsvariablen für den Betriebssystem-User und nicht systemweit gesetzt wurden, muss hier mit dem Betriebssystem-User ausgeführt werden. Da diesem wahrscheinlich die nötigen Rechte fehlen, müssen im jeweiligen Eingabeaufforderungs-Fenster die oben genannten Umgebungsvariablen temporär auch noch einmal gesetzt werden.

Beispiel zum Starten des Services per Befehl
INSTALLATIONSVERZEICHNIS\karaf\bin\contrib\karaf-service-win.exe start

Für mehr Informationen siehe Apache Karaf Container Documentation - Windows.


Keywords: