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

Ausgedruckt am: 29.03.2024 um 10:03 Uhr

Mitglied: Chris-75
Chris-75 28.12.2018 um 06:33:24 Uhr
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
Mitglied: holli.zimmi
holli.zimmi 28.12.2018 um 08:41:05 Uhr
Goto Top
HI,

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

Gruß

Holli