Gameserver automatisch prüfen und mehr
Hallo. Ich bin hier neu und dieses Forum hat mir schon einige male geholfen, nur bei meinem Jetzigen vorhaben komm ich einfach nicht weiter.
Folgendes Problem:
Auf meinem RootServer (Win 2008) hab ich mehrere Gameserver laufen. 2 von denen stürzen mir aber immer wieder in unregelmässigen Abständen ab, was sich auch leider nicht fixen lässt.
Deshalb arbeite ich daran, die Gameserver nach einem Crash automatisch starten zu lassen.
Dazu hab ich mir diese Batch geschrieben (Code grössten teils aus diesem Forum)
Dies funktioniert auch einwandfrei. Aber nur solange sich der Prozess nicht mehr in der Taskliste befindet. Wenn der Gameserver aber nur einfach nicht mehr reagiert, bleibt der Prozess ja erhalten.
und die Batch macht nix. Deshalb hab ich nach ewig langer Suche ein Powershell-Script gebastelt, welches den Prozess dann beendet, was ich aber nicht testen kann, weil ich das nicht per batch starten kann.
Jetzt muss die Batchdatei ganz oben dieses Powershell-Script ausführen. Nur hab ich gar keine Ahnung, wie das gehen soll! hab das mit call versucht, da hat der das nur geöffnet und nix weiter gemacht.
Jetzt kommt Ihr ins Spiel.
Könnt ihr mir sagen, wie ich die Powershell automatisch mit dieser Batch ausführen lassen kann und danach die Batch dann weiter macht?
oder könnt ihr mir einen noch besseren Vorschlag machen?
Folgendes Problem:
Auf meinem RootServer (Win 2008) hab ich mehrere Gameserver laufen. 2 von denen stürzen mir aber immer wieder in unregelmässigen Abständen ab, was sich auch leider nicht fixen lässt.
Deshalb arbeite ich daran, die Gameserver nach einem Crash automatisch starten zu lassen.
Dazu hab ich mir diese Batch geschrieben (Code grössten teils aus diesem Forum)
@echo off
set s2="Server2.exe"
:1
tasklist | findstr /i "%s2%" 1>NUL 2>&1 || %s2% + parameter
ping /n 11 localhost >nul
echo %date% - %time% -- Gameserver 2 neu gestartet... >>C:\...\Desktop\Servercrashes.log
goto 1
Dies funktioniert auch einwandfrei. Aber nur solange sich der Prozess nicht mehr in der Taskliste befindet. Wenn der Gameserver aber nur einfach nicht mehr reagiert, bleibt der Prozess ja erhalten.
und die Batch macht nix. Deshalb hab ich nach ewig langer Suche ein Powershell-Script gebastelt, welches den Prozess dann beendet, was ich aber nicht testen kann, weil ich das nicht per batch starten kann.
$liste = ps
$date = date
$reeboot = "Server hing und Prozess wurde beendet.
IF ($liste -match "iw4mp2.exe") {
$prozess = Get-Process Server2.exe
If ($prozess.Responding -match "False") {
Stop-Process -name "Server2.exe"
"$date | $reboot" >>C:\...\Desktop\Servercrashes.log
}
}
else {
end
}
Jetzt muss die Batchdatei ganz oben dieses Powershell-Script ausführen. Nur hab ich gar keine Ahnung, wie das gehen soll! hab das mit call versucht, da hat der das nur geöffnet und nix weiter gemacht.
Jetzt kommt Ihr ins Spiel.
Könnt ihr mir sagen, wie ich die Powershell automatisch mit dieser Batch ausführen lassen kann und danach die Batch dann weiter macht?
oder könnt ihr mir einen noch besseren Vorschlag machen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 159408
Url: https://administrator.de/forum/gameserver-automatisch-pruefen-und-mehr-159408.html
Ausgedruckt am: 14.05.2025 um 16:05 Uhr
2 Kommentare
Neuester Kommentar
moin Mauser,
Willkommen im Forum.
wie Du mit PS-scripts im Batch verfährtst steht bei PowerShell for Runaways - Part I
Auszug:
2.Starten eines Scripts mittels einer Verknüpfung oder per Batch-Datei: powershell.exe -command "C:\Scriptname.ps1"
Gruß Phil
Willkommen im Forum.
wie Du mit PS-scripts im Batch verfährtst steht bei PowerShell for Runaways - Part I
Auszug:
2.Starten eines Scripts mittels einer Verknüpfung oder per Batch-Datei: powershell.exe -command "C:\Scriptname.ps1"
Gruß Phil