redox1984
Goto Top

Windows 7 - Startskript nach Dienststart (MySQL)

Ich möchte ein Skript/Programm bei Systemstart ausführen, das auf einen Systemdienst zugreift.

Hallo zusammen,

ich hab ein kleines Problem. Ich habe einen MySQL-Server auf einem Windows 7-Rechner als Dienst registriert. Nun möchte ich, dass beim Systemstart und beim Herunterfahren ein Eintrag in eine Tabelle abgesetzt wird. Ich habe es über die Gruppenrichtlinien | Windows-Einstellungen | Skripts realisiert. Hier wird das Programm MySQL mit den entsprechenden Parametern aufgerufen.

Nun, beim Herunterfahren klappt das auch wunderbar. Nur beim Hochfahren nicht regelmäßig (?)... Ja seltsam, das hab ich auch gedacht. Nur ungefähr bei jeden 3. Systemstart kann der Query erfolgreich ausgeführt werden. Daher habe ich die Vermutung, dass die Dienste nicht in fester Reihenfolge gestartet werden, und das Skript ggf. ausgeführt wird, wenn der Server noch nicht oben ist.

Habt ihr zufällig eine Lösung für mich? Wie bekomme ich das am saubersten hin?

Gruß
RedoX

Content-ID: 132625

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

Ausgedruckt am: 22.11.2024 um 18:11 Uhr

SamTrex
SamTrex 02.01.2010 um 22:29:35 Uhr
Goto Top
Hi,
nun am saubersten kann ich dir so aus dem Stehgreif nicht sagen.
Aber kannst du die Ausführung der Query bzw. dein Script nicht in der Zeit verzögern?
Bau doch einfach zu Testzwecken mal 30 Sekunden Pause vor der Query ein.

MfG Sam
Guenni
Guenni 03.01.2010 um 12:40:13 Uhr
Goto Top
Hi redox,

eventuell hilft dir das Programm tasklist.

Hab dazu einen kleinen Batch-Schnipsel gefunden und ein wenig umgeändert:

@ECHO OFF
set ProgEXE=iexplore.exe
:Nochmal
TaskList /FI "IMAGENAME eq %ProgEXE%" 2>NUL | Find "%ProgEXE%" >NUL  
IF ERRORLEVEL == 1 (
  REM Meldung wird solange ausgegeben, bis der Explorer gestartet wird
  ECHO %ProgEXE% läuft noch nicht, versuche es nochmal . . . 
  GOTO Nochmal
 ) ELSE (
            REM Wenn das oben angegebene Programm läuft, Meldung ausgeben . . .
            ECHO %ProgEXE% läuft.
            REM . . . und weitere Anweisungen vornehmen
            Pause
            GOTO Ende
           )
:Ende

Wird die Batchdatei z.B. im Autostart-Ordner aufgerufen, läuft sie nach dem Systemstart solange, bis der Internet-Explorer gestartet wird.

Vielleicht klappt das ja auch mit der EXE-Datei des MySQL-Servers.

Gruß
Günni

P.S.: Für weitere Möglichkeiten mit tasklist einfach tasklist/? eingeben.
redox1984
redox1984 03.01.2010 um 13:29:33 Uhr
Goto Top
Ja vielen Dank euch beiden!

Das Skript von Günni läuft super. Es muss sich ja auch anscheinend nur um wenige Sekunden bis Millisekunden gehandelt haben... Und so ist es bestens, weil ich auch keinen konstanten Wert für die Pause angeben brauche!

Aber eigentlich dachte ich, Dienste werden unter NT als allererstes - sogar noch vor der Benutzeranmeldung - gestartet. Ist ja auch so bei RDC...