Stoppen Sie den Java-Prozess zwangsweise, indem Sie die PID in Windows PowerShell angeben

Umgebung

Windows Server 2012R2 PowerShell 4.0

Hintergrund

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.

Java-Cmdlet zum erzwungenen Stoppen

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.

Referenz

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

Stoppen Sie den Java-Prozess zwangsweise, indem Sie die PID in Windows PowerShell angeben
Spielen Sie andere Codewerte als XML-gültige Zeichen in Java ab
Ändern Sie die Java-Codierung in Windows
Externe Prozessausführung in Java
Thread-sicherer Prozess in Java-Sprache
Führen Sie einen externen Prozess in Java aus
Doppelte Karte sortiert nach Schlüssel in Java
Rufen Sie die Windows-Benachrichtigungs-API in Java auf
Verarbeiten Sie eine beliebige Anzahl von Fällen in Java List