castorp
Goto Top

Windows Dienst starten: Fehler 7009 und 7000

Hallo,

ich versuche ein kleines Kommandozeilenprogramm als Dienst zu installieren und zu starten, aber es gelingt mir nicht. Offenbar mache ich etwas grundsätzlich falsch. Ich wäre dankbar, wenn jemand einen Tipp für mich hätte, denn ich bin mittlerweile etwas ratlos.

System: Windows 7 Ultimate (64bit), Service Pack 1; Windows Server 2016

Das (Beispiel-)Programm (xyz.c):
#include <stdio.h>
#include <windows.h>

int main() {
    FILE* fp;

    while (1) {
        fp = fopen("C:\\xyz.txt", "a");  
        if (fp == NULL)
            return -1;
        fprintf(fp, "All work and no play makes Jack a dull boy.\n");  
        fclose(fp);
        Sleep(5000);
    }
    return 0;
}
Beschreibung: Das Programm öffnet alle 5 Sekunden die Datei xyz.txt, schreibt einen Zeichenkette hinein und schließt die Datei dann wieder.

Kompilieren in eine exe-Datei:
tcc xyz.c -o C:\xyz.exe

Die exe-Datei als Dienst installieren:
sc create xyz binPath= "C:\xyz.exe"
[SC] CreateService ERFOLG

Soweit läuft alles ohne Probleme. Die beginnen, wenn man den Dienst starten will.
net start xyz
Der Befehl wird zunächst ausgeführt (in die Datei xyz.txt werden auch Einträge geschrieben), doch dann bricht "net" mit einer Fehlermeldung ab.
Der Dienst reagiert auf die Kontrollfunktion nicht
In der Ereignisanzeige werden zwei Fehler angezeigt:
Ereignis-ID: 7009
Das Zeitlimit (30000ms) wurde beim Verbindungsversuch mit dem Dienst xyz erreicht.
Ereignis-ID: 7000
Der Dienst "xyz" wurde aufgrund folgenden Fehlers nicht gestartet:
Der Dienst antwortet nicht rechtzeitig auf die Start- und Steuerungsanforderung.

Änderungen der Registry, um das Zeitlimit nach oben zu setzen, haben nichts gebracht (Link).

Wie gesagt, ich bin für jeden Hinweis dankbar.

Viele Grüße
Castorp

Content-Key: 396799

Url: https://administrator.de/contentid/396799

Printed on: June 12, 2024 at 16:06 o'clock

Member: Chris-75
Chris-75 Dec 28, 2018 at 05:33:24 (UTC)
Goto Top
Hi,

soweit mir bekannt ist kann man nicht ein beliebiges Programm (.exe) als Dienst starten, das muss extra dafür als geeignet programmiert bzw. kompiliert werden.

mfg
Chris
Member: holli.zimmi
holli.zimmi Dec 28, 2018 at 07:41:05 (UTC)
Goto Top
HI,

ich glaube eher das Du es als Task laufen lassen musst!

Gruß

Holli