Windows Server 2012R2 PowerShell 4.0
Falls der Java-Prozess in der Mitte stoppt und nicht mit dem nachfolgenden Job fortfahren kann, kann das Skript nach dem Stoppen des Prozesses einen erzwungenen Stopp ausführen. Wenn unter Windows mehrere Java-Prozesse im selben Betriebssystem vorhanden sind, werden alle Java-Prozesse durch Taskkilling durch Angabe des Namens (java.exe) gelöscht. Wenn Sie einen bestimmten Java-Prozess stoppen möchten, identifizieren Sie ihn anhand der Prozess-ID (PID). Hier versuchen wir jedoch, die Verwendung einer PID-Datei zu beenden.
Fügen Sie nach dem Ausführen des Java-Stoppbefehls Folgendes hinzu.
javakill.ps1
#PID-Dateipfad-Beispiel in IBM WAS-
$pid_file = "${install_root}/profiles/${profile_name}/logs/${server_name}/${server_name}.pid"
if(test-path $pid_file){
#Wenn der Prozess weiterhin besteht, beenden Sie ihn und löschen Sie die PID-Datei
write-output "Kill process:${server_name}"
$pid = get-content $pid_file
stop-process $pid -force
remove-item $pid_file
}else{
#Tun Sie nichts, wenn der Prozess bereits normal gestoppt wurde
write-output "process:${server_name} was already stopped:"
}
Bitte beachten Sie, dass der Ausgabeort von Java PID-Dateien je nach Produkt unterschiedlich ist. In IBM WAS-basierten Produkten wird die PID-Datei beim Starten des Java-Prozesses generiert und beim Stoppen des Java-Prozesses gelöscht. Daher sollte die PID-Datei auch beim erzwungenen Stopp gelöscht werden, damit sie beim nächsten Start nicht beeinträchtigt wird.
http://qiita.com/opengl-8080/items/bb0f5e4f1c7ce045cc57 http://labunix.hateblo.jp/entry/20121108/1352378556 https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014801453#77777777-0000-0000-0000-000014810269
Recommended Posts