
Ich habe ein paar Server mit einem Prozess, der regelmäßig hängen bleibt. Wir beenden diesen Prozess mit einem VBS-Skript, das (neben einigen anderen Dingen) den Befehl „Taskkill“ ausführt. Das Problem ist, dass sich der Prozessname ständig ändert. An einem Punkt wurde er als „FusionLoanSvr.exe“ angezeigt, änderte sich aber schließlich zu „Fusion~1.exe“ und jetzt zu „Fusion~2.exe“.
Diese Änderung des Prozessnamens zwingt mich jedes Mal, das Skript zu ändern, und ist natürlich nicht auf allen Servern konsistent.
Weiß jemand, warum der Kurzname verwendet wird, warum er auf ~2 erhöht wurde, und weiß jemand, wie man die Verwendung des Kurznamens verhindern oder den Prozess per Skript beenden kann, ohne auf den genauen EXE-Namen verweisen zu müssen, der im Task-Manager angezeigt wird?
Danke!
Antwort1
Mmmhhhh.
Dies ist eine (fundierte) Vermutung, die auf ähnlichem Verhalten basiert, das ich bei IIS-Apps gesehen habe.
Ich denke, wenn die Anwendung zum ersten Mal von IIS gestartet wird, hat sie denselben Namen wie die EXE-Datei.
Aus irgendeinem Grund erstellt IIS eine zweite Kopie des Prozesses. Diese erhält den Namen ~1.exe. Eine dritte Kopie erhält den Namen ˜2.exe und so weiter.
Der Grund für das Starten des zusätzlichen Prozesses könnte darin liegen, dass der erste Prozess nicht mehr reagiert. Es könnte
auch sein, dass der erste Prozess hängt, weil ein zweiter gestartet wird. (Vielleicht versuchen beide Prozesse, auf dieselben Ressourcen zuzugreifen, was zu einem Deadlock führt?)
Meiner Erfahrung nach ist so etwas häufig das Ergebnis einer Fehlkonfiguration des IIS-Anwendungspools und/oder der Arbeitsthreads.
Wie dem auch sei: Mir fällt da eine Art schneller und einfacher Hack ein: Überprüfen Sie einfach regelmäßig, ob name˜1.exe im Speicher ist. Wenn es da ist: Houston, wir haben ein Problem.
Dann beenden Sie einfach ˜9.exe, ˜8.exe .... ˜1.exe und name.exe, egal, ob sie da sind oder nicht.