Inhaltsverzeichnis

Programme unter Windows 2008 / Windows 10 als Service starten

Leider bittet Microsoft keinen einfaches Tool an, ein beliebiges Programm als Service zu starten.

In den Tests hat sich zum Schluss das Tool NSSM - the Non-Sucking Service Manager am besten und einfachsten herausgestellt.

Ziel ist es, ein PowerShell Script beim Start des Servers auszuführen.

Dies ließe sich eigentliche besser über den Windows Scheduler durchführen, allerdings muss VOR diesem Script der Oracle Service gestartet werden und der läuft als Dienst.

Um daher die Abhängigkeit darstellen zu können, das ganze als Service angelegt.

Hintergrund Oracle Instance für Standby im Mount Modus öffnen

NSSM - the Non-Sucking Service Manager

Download über:

Installation:

Starten einer administrativen Powerschell Session und Aufruf der Software:

cd D:\tools\nssm-2.24\win64
 
.\nssm.exe install

Über diese Oberfläche die Parameter des Service angeben:

NSSM  - the Non-Sucking Service Manager

Parameter:

Das Powershell Script für den Start der DB im Mount Modus siehe auch hier ⇒ https://orapowershell.codeplex.com/SourceControl/latest#ps/autoStart/mount_database.ps1

Unter dem Reiter Log On den DB User eintragen:

Das das Script ja nach Start der DB fertig ist und der Service sich nicht ständig neu starten soll: Unter dem Reiter Exit Actions:

Test ob der Service eingerichtet ist:

C:\Windows\System32\sc.exe query "ORACLE_MOUNT"

Den Oracle Service auf „Manuel“ setzen, der Oracle Service wird auch von dem Script mit gestartet.

Hat dann zum Schluss aber nur funktioniert wenn der DB Owner als Owner des Service eingetragen wurden!

Quellen

siehe auch ⇒ http://www.reddit.com/r/PowerShell/comments/2bgtdh/best_practices_to_run_script_continuously_as_a/


RunAsSVC

Download über http://www.pirmasoft.de/cms/freeware/runassvc

Ein erster test war für meine Problemstellung allerdings nicht erfolgreich.


"srvany.exe" aus dem Resource Kit

Aus einem Microsoft Forum:


"SRVSTART.EXE - Windows NT Service Execution"

Über das freie Werkzeug „SRVSTART.EXE - Windows NT Service Execution“ von http://www.rozanski.org.uk/services lässt sich sehr gut ein Programm als Service einrichten.

Download der Software von hier: http://rozanski.org.uk/software

Einrichten am Beispiel eines speziellen Start Scripts für eine Oracle Data Guard Umgebung:

Nun den Service starten über:

C:\Windows\System32\sc.exe start "ORACLE_MOUNT"

Service bei Bedarf wieder löschen

C:\Windows\System32\sc.exe delete ORACLE_MOUNT

# bzw.

./srvstart remove ORACLE_MOUNT

Fehler:

SRVSTART: 2015/01/31 16:56:45 ERROR severity=0 thread=2636 source=D:\Home\Author\srvstart.v110\dll\CmdRunner.cpp line=1334 text=createProcess(): failed to start process '"C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File D:\oracle\autostart\mount_database.ps1"', error=267
SRVSTART: 2015/01/31 16:56:45 ERROR severity=0 thread=2636 source=D:\Home\Author\srvstart.v110\dll\CmdRunner.cpp line=1336 text=Exception 1 in Class '' method 'createProcess()'

Noch am Suchen, leider noch kein Erfolg, scheint doch nicht mehr zu funktionieren …. kann aber auch an Berechtigungen liegen? Dienst als User anmelden hilft evtl. weiter.

siehe auch:


MS Windows "sc" verwenden

Funktioniert aber nur mit Programmen die die Service Schnittstelle implementiert haben!

Mit dem Programm „sc“ kann unter Windows 2008 ein Programm als Service eingerichtet werden.

Ablauf:

Beispiel:

Anlegen

!Auf das Leerzeichen nach dem “=„ achten!

dir /x d:\programme (x86)\MY prog\listener.exe
 
rem Pfad merken
 
sc.exe create GPIListenerService binpath= "d:\PROGRAM~2\MYPOR~\listener.exe" displayName= "GPIListenerService " error= ignore start= auto type= own 
 
rem testen
 
sc qc GPIListenerService
Fehler

Ein möglicher Fehler ist der „error message 1053: The service did not respond to the start or control request in a timely fashion.“, oft liegt hier das Problem an Berechtigungen.

Ist das Programm aber nicht für einen Run as Service geeignet und antwortet nicht entsprechend schnell den aufrufenen Service wrapper von Windows, kann SC so einfach nicht verwendet werden.

Alternativ kann hier srvany.exe von Windows 2003 Resourcekit helfen, srvany dann wiederum mit sc einbinden.

siehe Anleitung hier: srvany.exe im MS Forum

Quellen

Alternativen