18

Сначала Spotify убил себя, но «что-то из этого» продолжало оставаться, что можно было обнаружить как задачу с PID 8664, и, судя по тому, что время от времени менялось использование ОЗУ, он «что-то делал».

Прежде всего, этот процесс не позволил мне слушать музыку, потому что Spotify отказался перезапускаться из-за зависания этого экземпляра.

Поэтому я попытался избавиться от этого процесса. Но ни менеджер задач, ни команда taskkill (как, конечно, Admin) не преуспели в этом.

Taskkill, по крайней мере, дал мне "причину", которую я здесь переведу.

>taskkill /pid 8664 /f
>taskkill /im spotify.exe /f

оба дали:

ERROR: The process "spotify.exe" with PID 8664 could not be terminated.
Reason: There is currently no instance executed by this task.

Я хотел бы знать, что это значит и есть ли еще один вариант, как прекратить такой процесс.

(Windows 7 Pro 64 бит)

1 ответ1

12

Процесс почти наверняка уже мертв, то есть он больше не выполняет какой-либо код. Тем не менее, бухгалтерия об этом не исчезнет, пока не будут закрыты все дескрипторы к нему и каждый из его потоков. У вас может быть другая программа, держащая такой дескриптор в открытом состоянии (вероятнее всего, антивирусные программы), или она могла перед своей смертью сделать запрос на драйвер режима ядра, который теперь завис (у меня когда-то был привод CD, который вызывал это много). Далее читаем: «Почему некоторые процессы остаются в диспетчере задач после их уничтожения?" и " Почему все эти процессы затягиваются после смерти и что их поддерживает?"

Spotify отказывается запускаться снова, потому что видит свою копию, которая уже запущена, но, очевидно, просто ищет другой процесс, называемый spotify . (По словам Рэймонда Чена, приложение для одного экземпляра - это собственный отказ в обслуживании). Самый простой способ исправить это - перезагрузить компьютер, так как это уничтожит все ручки и бухгалтерию.

Но если вы действительно хотите Fixing It Yourself TM, скачайте Process Explorer, фантастически полезную бесплатную утилиту от Sysinternals. (У меня нет принадлежности.) Запустите его, установка не требуется, и примите лицензионное соглашение. В разделе «Файл» выберите « Показать детали для всех процессов» ; это приводит к тому, что Process Explorer перезапускается от имени администратора. Затем в разделе «Найти» выберите « Найти дескриптор» или «DLL». Введите название процесса зомби (ну, труп) и нажмите Поиск.

в поисках ручек

Столбцы Process и PID сообщают, какому процессу принадлежит дескриптор. Столбец Тип указывает, что это за вещь; нас интересуют те, которые относятся к типу Process или Thread. Столбец Имя сообщает вам, что дескриптор для. (Многие процессы имеют собственные дескрипторы; они исчезнут, если приложение-владелец завершит работу без проблем в режиме ядра.)

Опасность: закрытие дескриптора, в котором действительно нуждается приложение, является отличным способом его сбоя. Если возможно, выйдите из приложения, которому принадлежит дескриптор. Но если ты не можешь, или тебе просто хочется бить молотком ...

Нажмите на запись в этом окне поиска, чтобы открыть панель маркеров. Щелкните правой кнопкой мыши вновь выделенную запись на этой панели и выберите « Закрыть дескриптор», чтобы убрать ее из существования.

Как только все ручки закрыты, процесс исчезнет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .