Битлента
Сетевые команды и утилиты5 мин чтения·

taskkill /IM и /PID: как закрыть зависшую программу из командной строки

Как завершить зависшую программу командой taskkill в Windows: ключи /IM, /PID, /F, /T, фильтр по статусу и что делать при ошибке «отказано в доступе».

Кратко

taskkill /IM имя.exe или taskkill /PID номер просит процесс завершиться. Если он не реагирует, добавляют /F, а /T закрывает ещё и дочерние процессы. Перед принудительным завершением несохранённые данные пропадут, поэтому сначала попробуйте обычный запрос.

Когда окно не закрывается, а диспетчер задач недоступен

Обычно зависшую программу закрывают через диспетчер задач. Но бывают ситуации, когда он сам открывается с трудом: система почти не отвечает, сеанс удалённый, нужно закрыть сразу несколько однотипных процессов или сделать это из скрипта. В таких случаях выручает taskkill, встроенная команда Windows.

Команда принимает цель одним из двух способов: по имени исполняемого файла (ключ /IM) или по номеру процесса (ключ /PID). Имя удобно, когда нужно закрыть все экземпляры программы. PID точнее, когда запущено несколько копий и закрыть надо одну конкретную.

Чтобы узнать имя и номер, сначала выведите список процессов командой tasklist. Угадывать PID не нужно и опасно: номера выдаются заново при каждом запуске.

Пример из практики: программа закрылась, а в списке процессов осталась её копия, и повторный запуск выдаёт сообщение, что приложение уже работает. Здесь достаточно найти процесс по имени и завершить его, не перезагружая компьютер.

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

Два базовых запроса и ключ /F

Запись taskkill /IM notepad.exe отправляет запрос на завершение всем процессам с таким именем. Запись taskkill /PID 1234 делает то же для процесса с номером 1234. Можно указывать несколько целей: ключи /PID и /IM допускается повторять в одной команде.

Без дополнительных ключей taskkill посылает программе обычный запрос на закрытие. Хорошо написанное приложение успеет предложить сохранить документ и завершится само. Для процессов без окна такой запрос может не подействовать, и команда сообщит, что процесс завершается только принудительно. Если процесс завис, запрос может остаться без ответа, и тогда подключают ключ /F: он завершает процесс принудительно, без предупреждений.

Принудительное завершение не даёт программе сохранить данные и закрыть файлы аккуратно. Несохранённая работа пропадёт, а открытые файлы могут остаться в неполном состоянии. Поэтому сначала подождите несколько минут, затем попробуйте команду без /F и лишь потом применяйте её с /F.

Предупреждение: ключ /F, особенно вместе с /T или шаблоном в /IM, обрывает программы без сохранения данных. Отрабатывайте команды только на тестовой программе, которую вы сами открыли для этого, например на новом пустом Блокноте. Не применяйте /F к процессам, назначение которых вам неизвестно.

Обратите внимание на шаблоны: в значении /IM допускается звёздочка, поэтому taskkill /IM name* затронет все процессы, имя которых начинается с name. Такой шаблон удобен, но он же и опасен, если выбран слишком коротко. Сначала подставьте тот же шаблон в tasklist и посмотрите, что именно попадёт под условие.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Ключи, которые дают контроль

Ключ /T завершает указанный процесс вместе с дочерними. Это нужно для программ, которые запускают вспомогательные процессы и оставляют их висеть после закрытия основного окна. Ключ /FI задаёт фильтр, формат которого такой же, как у tasklist.

КлючНазначение
/IM имяцель по имени образа, допускаются шаблоны со звёздочкой
/PID номерцель по идентификатору процесса
/Fпринудительное завершение
/Tзавершить вместе с дочерними процессами
/FI "условие"отбор процессов по фильтру
/S, /U, /Pудалённый компьютер и учётные данные

Пример с фильтром: taskkill /FI "STATUS eq NOT RESPONDING" закрывает процессы, у которых система отметила состояние «не отвечает». Используйте такую запись осторожно, потому что под условие может попасть и программа, которая просто занята тяжёлой операцией и скоро ответит.

В сообщениях команды различается ситуация, когда процессу отправлен запрос на завершение, и ситуация, когда процесс завершён принудительно. Если вы видите, что запрос отправлен, но процесс остаётся в списке, это не сбой: программа может показывать собственное окно с вопросом, которого не видно из-за зависшего интерфейса.

Ошибки и их причины

Распространённое сообщение: отказано в доступе. Оно появляется, когда процесс запущен от имени другой учётной записи или с повышенными правами, а консоль открыта без них. Запустите командную строку от имени администратора и повторите команду. Часть системных процессов закрыть нельзя даже так: Windows защищает критически важные компоненты.

Второе распространённое сообщение: процесс не найден. Проверьте написание имени (нужно расширение .exe) и убедитесь через tasklist, что процесс ещё запущен: он мог завершиться сам.

  • Отказано в доступе: откройте консоль с правами администратора.
  • Процесс не найден: проверьте имя и PID по свежему списку tasklist.
  • Процесс сразу запускается снова: его перезапускает служба или планировщик, а закрытие по одному разу не помогает.
  • Не помогает /F: причина может быть в самом процессе или драйвере, и иногда остаётся только перезагрузка.

Если завершённый процесс тут же появляется снова, ищите причину в автозапуске или службе, а не повторяйте команду по кругу.

Бывают ситуации, когда процесс завершён, а файл по-прежнему занят. Тогда причина в другом процессе, который ещё держит его, или в службе, работающей в фоне. Найдите владельца через монитор ресурсов или список процессов и разберитесь с ним, а не повторяйте команду для уже закрытой программы.

Что не стоит закрывать и как проверять перед закрытием

Не завершайте процессы, назначение которых вам неизвестно. Закрытие системных компонентов может привести к потере сеанса или перезагрузке. Сначала найдите описание по имени файла и проверьте расположение: стандартные компоненты Windows лежат в системных каталогах.

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

Для Linux и macOS аналогичные задачи решают команды kill и top, они описаны на соседней странице раздела систем. В PowerShell есть собственный командлет Stop-Process с похожим смыслом, его принцип описан на странице про язык PowerShell.

Для сценариев, которые закрывают программу перед обновлением или копированием, надёжнее сначала отправить обычный запрос, подождать несколько секунд и только затем при необходимости применять /F. Так программа получает шанс сохранить данные, а сценарий не остаётся с занятыми файлами.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
taskkillпроцессыwindowsзависшая программа

Часто задаваемые вопросы

Читайте также