Jump to content

"start /wait" wartet nicht...


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen

 

ich habe ein "master" batch, das vier weitere batch Dateien startet:

 

start /wait /low /B backup_mysql_master.bat
start /wait /low /B backup_mysql_slave_3307.bat
start /wait /low /B backup_mysql_slave_3308.bat
start /wait /low /B backup_mysql_slave_3309.bat

 

Die "sub" batches tun in der essenz eigentlich nur folgendes:

 

start /wait /low d:\mysql-master\bin\mysqldump --host=127.0.0.1 --port=3306 --user=user --password=password --all-databases --verbose --compress > %BackupFile%

 

Die batches laufen fehlerfrei durch - soweit so gut. Nur - das master batch wartet nach dem Aufruf des ersten sub batches nicht auf dessen beendigung, sondern ruft umgehend die restlichen sub batches auf, so dass alle nebeneinander laufen.

 

Was mache ich falsch?

 

Vielen Dank für Eure Hilfe

Frank

Link zu diesem Kommentar

Wenn ich alles in ein batch file nehme...

 

start /wait /low d:\mysql-master\bin\mysqldump --host=127.0.0.1 --port=3306 --user=user --password=password --all-databases --verbose --compress > %BackupFileMaster%
start /wait /low d:\mysql-slave-3307\bin\mysqldump --host=127.0.0.1 --port=3307 --user=user --password=password --all-databases --verbose --compress > %BackupFileSlave3307%
start /wait /low d:\mysql-slave-3308\bin\mysqldump --host=127.0.0.1 --port=3308 --user=user --password=password --all-databases --verbose --compress > %BackupFileSlave3308%
start /wait /low d:\mysql-slave-3309\bin\mysqldump --host=127.0.0.1 --port=3309 --user=user --password=password --all-databases --verbose --compress > %BackupFileSlave3309%

 

... dann läuft die Applikation jeweils durch und erst dann wir der nächste start Befehl ausgeführt. Nur: mit dieser Syntax steht in meinen Ausgabe Files %BackupFileXXXX% nichts - ich sehe aber, dass das Backup selbst durchläuft, die Daten wären also da.

 

Füge ich jeweils den Parameter /b ein....

 


start /wait /low /b d:\mysql-master\bin\mysqldump --host=127.0.0.1 --port=3306 --user=user --password=password --all-databases --verbose --compress >> %BackupFileMaster%
start /wait /low /b d:\mysql-slave-3307\bin\mysqldump --host=127.0.0.1 --port=3307 --user=user --password=password --all-databases --verbose --compress >> %BackupFileSlave3307%
start /wait /low /b d:\mysql-slave-3308\bin\mysqldump --host=127.0.0.1 --port=3308 --user=user --password=password --all-databases --verbose --compress >> %BackupFileSlave3308%
start /wait /low /b d:\mysql-slave-3309\bin\mysqldump --host=127.0.0.1 --port=3309 --user=user --password=password --all-databases --verbose --compress >> %BackupFileSlave3309%

 

dann habe ich zwar die Daten wie gewünscht in den Ausgabe Files, aber wartet das batch file wieder nicht mehr auf dei Beendigung des vorgängigen Tasks und startet alles sofort hintereinander, so dass die Prozesse parallel laufen.

 

Irgendwie dreh' ich mich hier im Kreis....

Link zu diesem Kommentar

Moin qnorx,

 

nun muss ich aber mal zurückfragen...

 

In der Hilfe "Start /?" steht:


Wird eine grafische 32-Bit-Anwendung aufgerufen, wartet CMD.EXE nicht auf
   das Beenden dieser Anwendung, sondern kehrt sofort zur Eingabeauforderung
   zurück. Das gilt NICHT, wenn diese Anwendung aus einem Befehlsskript
   heraus aufgerufen wird.

 

Also: ist mysqldump eine graphische W32-Bit-Anwendung?

If so, dann kannst Du soviele /Waits eingeben, wie Du möchtest - ohne Effekt.

If not: Dann kannst Du doch statt diesem Start /b /low /whatever einfach direkt eingeben:

d:\mysql-slave-3307\bin\mysqldump ......

 

... oder hab ich jetzt etwas übersehen?

 

Gruß

Biber

Link zu diesem Kommentar
Moin qnorx,

 

nun muss ich aber mal zurückfragen...

 

In der Hilfe "Start /?" steht:


Wird eine grafische 32-Bit-Anwendung aufgerufen, wartet CMD.EXE nicht auf
   das Beenden dieser Anwendung, sondern kehrt sofort zur Eingabeauforderung
   zurück. Das gilt NICHT, wenn diese Anwendung aus einem Befehlsskript
   heraus aufgerufen wird.

 

Also: ist mysqldump eine graphische W32-Bit-Anwendung?

If so, dann kannst Du soviele /Waits eingeben, wie Du möchtest - ohne Effekt.

If not: Dann kannst Du doch statt diesem Start /b /low /whatever einfach direkt eingeben:

d:\mysql-slave-3307\bin\mysqldump ......

 

... oder hab ich jetzt etwas übersehen?

 

Gruß

Biber

 

Halllo Biber

 

nein, es ist keine graphische Applikation. Es ist ein Konsolen-Utility um MySQL Datenbanken zu dumpen.

Link zu diesem Kommentar
hi,

 

ruf halt die Programme mit CALL statt START auf, dann wird die Batch erst dann weiterausgeführt wenn das externe Programm durchgelaufen ist

 

Hallo Squire

 

dann bekomme ich aber ein anderes Problem - ich möchte nämlich die Prozesspriorität setzten können. Mit CALL habe ich da keine Priorität setzen. Und CALL mit START kombiniert ändert am Verhalten leider nichts.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...