У меня есть пара серверов с процессом, который регулярно зависает. Мы убиваем этот процесс с помощью сценария vbs, который запускает команду taskkill (среди прочего). Проблема в том, что имя процесса постоянно меняется. В какой-то момент он появился как «FusionLoanSvr.exe», но в конечном итоге изменился на «Fusion ~ 1.exe», а теперь на «Fusion ~ 2.exe».
Это изменение имени процесса вынуждает меня изменять сценарий каждый раз, когда это происходит, и, конечно же, это не согласовано на всех серверах.
Кто-нибудь знает, почему используется короткое имя, почему оно увеличено до ~ 2, и либо способ остановить его от использования короткого имени, либо способ убить процесс с помощью скрипта без необходимости ссылаться на точное имя EXE, как показано в Диспетчер задач?
Спасибо!
Мммххх.
Это немного (обоснованное) предположение, основанное на аналогичном поведении, которое я наблюдал с приложениями IIS.
Я думаю, что при первом запуске приложения IIS оно называется с тем же именем, что и EXE-файл.
По какой-то причине IIS порождает секундную копию процесса. Это получает имя ~ 1.exe имя. Третья копия получает имя ~ 2.exe и так далее.
Возможно, причина появления дополнительного процесса в том, что первый процесс больше не отвечает.
Также может быть, что 1-й виснет из-за того, что запускается 2-й. (Может быть, оба процесса пытаются получить доступ к одним и тем же ресурсам, вызывая тупик?)
По моему опыту, такая вещь часто является результатом неправильной настройки пула приложений IIS и / или рабочих потоков.
В любом случае: На ум приходит что-то вроде быстрого и грязного взлома: просто периодически проверяйте, есть ли name˜1.exe в памяти. Если он там: Хьюстон, у нас проблема.
Затем просто убейте ˜9.exe, ˜8.exe .... ˜1.exe и name.exe независимо от того, есть они там или нет.