Как убить процесс Linux. Как остановить вредоносные процессы? Остановка процесса

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

В этой статье мы рассмотрим несколько самых распространенных способов завершить процесс Linux. Опишем подробно как происходит остановка процесса и как все сделать правильно.

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

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

  • SIGINT - самый безобидный сигнал завершения, означает Interrupt. Он отправляется процессу, запущенному из терминала с помощью сочетания клавиш Ctrl+C. Процесс правильно завершает все свои действия и возвращает управление;
  • SIGQUIT - это еще один сигнал, который отправляется с помощью сочетания клавиш, программе, запущенной в терминале. Он сообщает ей что нужно завершиться и программа может выполнить корректное завершение или проигнорировать сигнал. В отличие от предыдущего, она генерирует дамп памяти. Сочетание клавиш Ctrl+/;
  • SIGHUP - сообщает процессу, что соединение с управляющим терминалом разорвано, отправляется, в основном, системой при разрыве соединения с интернетом;
  • SIGTERM - немедленно завершает процесс, но обрабатывается программой, поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы;
  • SIGKILL - тоже немедленно завершает процесс, но, в отличие от предыдущего варианта, он не передается самому процессу, а обрабатывается ядром. Поэтому ресурсы и дочерние процессы остаются запущенными.

Важно понимать, что нужно дать процессу возможность завершиться корректно. Желательно, чтобы порты и сокеты были освобождены, закрыты и удаленны временные файлы. Поэтому никогда не передавайте сразу SIGKILL. Передавайте сигналы завершения в последовательности, как они перечислены выше.

Сначала Ctrl+C , если это возможно, затем SIGTERM - он хоть и завершает процесс, но делает эту культурно, и только в крайнем случае SIGKILL. А теперь рассмотрим как убить процесс по pid Linux на практике. Если вы всегда используете SIGKILL, тогда на ум приходит такая картинка:

Как убить процесс Linux?

Для передачи сигналов процессам в Linux используется утилита kill. Ее синтаксис очень прост:

$ kill -сигнал pid_процесса

Сигнал представляет собой один из выше перечисленных сигналов для завершения процесса. По умолчанию, если этот параметр не указан, используется сигнал SIGTERM, что является очень правильно. Также нам нужно указать какой процесс нужно завершить. Для этого используется уникальный идентификатор процесса - PID.

Допустим, у нас выполняется утилита ping. Мы хотим ее завершить с помощью kill. Тогда, сначала мы узнаем ее идентификатор с помощью команды ps:

ps aux | grep ping

В первой строчке отобразится сама утилита ping, а во второй сама программа ps. Берем нужный PID и завершаем процесс с помощью SIGTERM:

kill -TERM 20446

И только если после этой команды процесс продолжил висеть, а это вы можете проверить, выполнив ps. Только теперь можно выполнить SIGKILL:

kill -KILL 20446

Теперь снова проверяем:

Если процесс запущен от суперпользователя, то, естественно, вам нужно использовать sudo. Не всегда удобно уничтожать процесс по его PID, как минимум, потому, что вам этот PID нужно еще узнать. Мы могли бы нагородить сложных конструкций с использованием xargs, чтобы вычислять автоматически pid по имени процесса и сразу же его завершать, но в этом нет необходимости. Уже существуют специальные утилиты.

Как завершить процесс с помощью pkill

Утилита pkill - это оболочка для kill, она ведет себя точно так же, и имеет тот же синтаксис, только в качестве идентификатора процесса ей нужно передать его имя. Утилита сканирует директорию proc и находит PID первого процесса с таким именем, затем отправляет ему SIGTERM. Таким образом, вы можете убить процесс по имени Linux. Например, если мы хотим завершить тот же ping:

Также можно вручную задать тип сигнала:

pkill -TERM ping

Вместо ps, вы можете использовать утилиту pgrep для поиска pid процесса, убедимся что наша программа завершена:

Но если вам программа создала несколько процессов, например, браузер chromium или firefox создают отдельный процесс для каждой из вкладок, то эта утилита мало чем поможет. Тут нужен следующий вариант.

Как остановить процесс с помощью killall

killall работает аналогично двум предыдущим утилитам. Она тоже приминает имя процесса в качестве параметра и ищет его PID в директории /proc. Но эта утилита обнаружит все процессы, с таким именем и завершит их. Например:

Как видите, запущено несколько процессов, осталось остановить процесс Linux с помощью killall:

Команда завершит все запущенные утилиты ping, вы можете убедиться в этом еще раз выполнив pgrep:

Выводы

В этой статье мы рассмотрели как убить процесс Linux. Иногда эта задача может быть очень полезной, но важно понимать, что ее нужно выполнять правильно. Нельзя сказать, что передача SIGKILL вместо SIGTERM очень опасна, но так делать не стоит. Надеюсь, эта информация была полезна для вас.

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

Для того, чтобы временно остановить выполнение процесса, ему следует послать сигнал STOP(19).

Например, чтобы остановить работающую программу top, ей посылается сигнал.

$ kill -STOP 18026 $ ps -t pts/1 -o pid,s,comm PID S COMMAND 18015 S bash 18026 T top $

Обратите внимание на поле состояние у процесса , там стоит буква Т. Это значит, что выполнение процесса приостановлено.

В этом месте я должен был написать следующее: «Чтобы продолжить выполнение процесса, пошлите ему сигнал CONT(18)». Так вот, даже если Вы пошлете процессу сигнал CONT, он все равно остается в приостановленном состоянии. Почему так происходит? Дело в том, что данный процесс «привязан» к терминалу, поэтому он не будет реагировать на 18-й сигнал. И возобновлять его работу можно только при помощи средств, встроенных в шелл bash. На сигнал CONT будут реагировать только процессы, не «привязанные» к терминалу, например, процессы-демоны.

# ps -eo pid,s,comm | grep inetd 3743 S inetd # kill -STOP 3743 # ps -eo pid,s,comm | grep inetd 3743 T inetd # kill -CONT 3743 # ps -eo pid,s,comm | grep inetd 3743 S inetd #

Программа inetd - это демон, не «привязанный» к терминалу. Сначала ему был послан сигнал STOP, и он перешел в состояние Т. Затем ему послали сигнал CONT, и он вернулся в рабочее состояние (состояние S означает, что процесс ожидает какой-либо операции ввода-вывода, а значит, он находится в рабочем состоянии. ).

В bash есть интересная встроенная возможность - Job control (управление заданиями). Пользователь может останавливать и продолжать выполнение программ. Оболочка «знает» о всех программах, запущенных при ее помощи, и может выдать полный список всех работающих программ. Для получения списка используют команду jobs.

Jobs [-lnprs]

Но прежде, чем мы рассмотрим использование управления заданиями, разберемся с foreground (интерактивный) и background (фоновый) режимами работы программ.

Когда Вы обычным образом запускаете на выполнение программу, она занимает терминал, точнее, связанные с этим терминалом. Пока эта программа не завершит свою работу, Вы не сможете в нем выполнять новые программы, так как не будет доступна командная строка. Такой режим работы называют foreground.

Bash позволяет запускать программы в фоновом режиме. В этом случае, программа начинает работать параллельно оболочке, на экране появляется приглашение командной строки, и Вы сможете запускать другие программы.

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

Jobs показывает только временно приостановленные и работающие в фоновом режиме программы. Также следует учитывать, что шелл (а jobs - это встроенная команда шелл) «видит» только те программы, которые были запущены из него. Если какая-то программа была запущена в фоновом режиме в другом терминале или другой программой, jobs текущего шелл не покажет эту программу в своем списке.

Для того, чтобы временно остановить выполнение программы, выполняющейся в foreground-режиме, достаточно нажать комбинацию клавиш Ctrl+Z . Процесс тут же будет приостановлен, и на экране появится приглашение командной строки. Например, во время работы программы была нажата указанная выше комбинация клавиш. На экран будет выведено сообщение о приостановке выполнение программы:

Stopped top $ ps -o pid,s,comm PID S COMMAND 20185 S bash 21231 T top 21238 R ps $

Если теперь запустить jobs, он покажет список приостановленных или выполняющихся в фоновом режиме программ.

$ jobs + Stopped top $

1 - это не PID, а внутренний номер программы. Если необходимо увидеть PID программ, тогда используйте параметр –p:

$ jobs -p 21231 $

Еще больше информации показывает jobs с параметром –l:

$ jobs -l + 21231 Stopped (signal) top $

Символ плюс означает последнюю остановленную программу, минус - предпоследнюю.

Чтобы продолжить выполнение программы в foreground-режиме, можно использовать команду fg. Для продолжения выполнения в фоновом режиме - bg. Обеим программам в качестве параметра можно указывать номер задания - число, которое выводит jobs. Если номер не указан, команда работает с последним процессом.

$ fg top top - 16:34:06 up 6:10, 1 user, load average: 0.00, 0.04, 0.09 Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie Cpu(s): 1.8% us, 0.6% sy, 0.0% ni, 95.2% id, 2.3% wa, 0.0% hi, 0.0% si Mem: 246832k total, 243148k used, 3684k free, 5512k buffers Swap: 514072k total, 70760k used, 443312k free, 111332k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 19357 artur 15 0 198m 48m 21m S 1.1 20.2 0:59.18 soffice.bin 4107 root 15 0 161m 21m 2280 S 0.7 8.9 6:42.39 X

Если у вас медленно работает компьютер, а пространство жёсткого диска перегружено, очистите его от лишних программ и компонентов, а также отключите ненужные процессы и службы. Сделать это можно стандартными средствами Windows либо с помощью сторонних программ.

Откуда появляются лишние программы

Какие программы и процессы в Windows 7 можно убрать

В Windows 7 три категории данных, загружающих систему - программы, процессы и службы. Программа устанавливается на компьютер для выполнения функции, необходимой пользователю. Процесс может быть системным, необходимым для корректной работы Windows 7, и пользовательским, запущенным вместе с программой. Службы в системе запускаются по умолчанию и отключаются через «Управление компьютером».

Процессы можно отключить через «Диспетчер задач» (инструкция приведена ниже).

Таблица: какие процессы можно отключить без вреда для системы

Процесс Описание
soffice Отвечает за работу Open Office.
reader_sl Ускоритель Adobe Reader.
hkcmd Процесс Intel, сопровождает аппаратное обеспечение компьютера.
adobeARM Проверяет обновления Adobe Reader.
RAVCpl64 Аудиоменеджер от Realteck.
CCC Контрольный центр для видеокарт ATI, нужен, только если вы играете в игры.
neroCheck Ищет конфликтующие драйверы.
jqs Ускоряет работу программ на Java.
jusched Ищет обновления для Java.
wmpnetwk Система поиска Windows Media Player.
osppsvc Защита программ MS Office 2010.
sidebar Отвечает за работу гаджетов Windows 7.
nwiz Отвечает за действия nVidia NView.
atiptaxx Открывает доступ к настройкам ATI-видеокарт.

Не отключайте процесс Explorer.exe - остановка приведёт к удалению иконок рабочего стола и панели задач Windows.

Таблица: процессы, которые нельзя отключать

Процесс Описание
taskshot Хост-файл.
msdtc Координатор транзакций сетевых систем.
smss Управление сеансами Windows.
wininit Автозапуск программ.
winlogon Вход в Windows.
services Запуск служб Windows.
explorer Рабочий стол, ярлыки.
spoolsy Поддерживает очередь печати.
lsm Управляет состоянием сеансов.
taskmgr Отвечает за работу диспетчера задач.
searchindexer Индексирование поиска.
csrss Отвечает за консольные приложения.
sppsvc Защита платформы Windows.
svhost Отвечает за сетевой обмен.
conhost Для обработки консольных окон.
lsass Сохраняет локальную безопасность пользователей.

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

Windows 7 не даёт пользователю завершить некоторые особо важные процессы. При перезагрузке система запускает их повторно.

Помимо процессов, в системе Windows работают службы, часть из которых с помощью меню «Управление компьютером» можно закрыть без ущерба для безопасности ПК. Список служб, которые можно остановить:

  • факс;
  • удалённое управление Windows;
  • удалённый реестр;
  • удалённые рабочие столы;
  • поддержка Bluetooth;
  • сервер удалённых рабочих столов;
  • вторичный вход в систему;
  • смарт-карта;
  • диспетчер автоподключений удалённого доступа;
  • координатор распределенных транзакций (КРТ);
  • ktmrm для КРТ.

Если вы не используете локальную сеть, отключите службу «Модуль поддержки NetBIOS» и переведите на ручной режим службу «Браузер компьютеров».

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

Как стереть программы и остановить процессы на Windows 7

Удалить утилиты и остановить процессы можно несколькими способами: через меню «Пуск», с помощью «Панели управления» и «Диспетчера задач», а также с помощью специально разработанных программ.

Как деинсталлировать программы и отключить службы из меню «Пуск»

Открыв «Пуск», можно просмотреть список программ и удалить некоторые:

Недостаток способа в том, что после стирания программы средствами Windows сохраняются её файлы и остаточные записи в реестре.

Также из меню «Пуск» вы можете остановить работу служб. Для этого:


Не отключайте все службы подряд - часть из них отвечает за корректную работу Windows.

Видео: отключение лишних процессов и служб

Как стереть приложение из «Панели управления»

Для деинсталляции утилиты недостаточно стереть папку, где она находится, или иконку с рабочего стола. Из стандартных средств Windows можно использовать программу удаления.

  1. Нажмите на «Пуск» и выберите «Панель управления».
  2. Откройте «Удаление программы».
  3. Компьютер откроет список программ, работающих на компьютере, в алфавитном порядке.
  4. Кликните по названию утилиты, которую будете деинсталлировать и щёлкните «Удалить/Изменить» вверху окошка.
  5. Во всплывшем окошке подтвердите удаление.

После завершения деинсталляции может быть необходима перезагрузка компьютера.

Видео: деинсталляция из «Панели управления»

Как остановить процессы через «Диспетчер задач»

Чтобы остановить процессы, выполняемые Windows, запустите «Диспетчер задач», нажав Ctrl+Alt+Del.


При перезагрузке компьютера некоторые процессы и службы запускаются автоматически. Поэтому для окончательного отключения удалите программу, использующую процесс, из автозапуска («Диспетчер задач», вкладка «Автозапуск») и отключите соответствующую службу.

Во вкладке «Автозагрузка» отображается полный список программ, запускающихся автоматически при старте Windows 7. Выберите программы, которые не нужны вам открытыми, и снимите галочки рядом с ними, а затем нажмите «ОК». После перезагрузки компьютера автозапуск будет отключён.

Другие варианты удаления неиспользуемых программ

Практически все инсталляторы предлагают пользователям выбрать папку, куда будут помещены файлы программы. По умолчанию они выполняют установку в папку C:\Program files. Открыв папку, вы увидите папки с программным обеспечением. Для деинсталляции программы напрямую:

  1. Зайдите в папку утилиты, которую будете стирать.
  2. Внутри найдите файл Uninstall.exe.
  3. Дважды щёлкните по файлу мышью.
  4. Откроется окно деинсталлятора. Подтвердите удаление и дождитесь окончания процесса.

Более сложный метод - деинсталляция приложений из командной строки. Чтобы выполнить удаление:

  1. Зайдите в командную строку. Для этого нажмите Win+R и в окошке «Выполнить» впишите cmd. Нажмите «ОК».
  2. Пропишите команду WMIC и нажмите клавишу Enter. Вы увидите надпись: wmic: root\cli.
  3. Пропишите запрос product get name. Через некоторое время вы увидите список установленных программ.
  4. Пропишите: product where name = «наименование программы в точности» call uninstall. При написании имени программы учитывайте регистр. Если имя введено неправильно, нажав клавишу Enter, вы заметите информацию об ошибке.
  5. Нажмите «Y» для подтверждения процедуры и дождитесь надписи Method Execution successful.

Сторонние программы для удаления ненужных файлов

Используя средства Windows, стереть программу без «хвостов» сложно. И разработчики придумывают сторонние приложения - деинсталляторы. Инструкции по работе с некоторыми из них приведены ниже.

PC Decrapifier

  1. Нажмите «Проверить обновления» (Check for updates).
  2. В открывшемся окне вы увидите вопрос «Вы используете новый компьютер»? Отвечайте, не приукрашивая.
  3. Создайте метку для восстановления Windows и нажмите «Далее» (Next).
  4. Программа выполнит автоматический поиск неиспользуемых приложений и представит их в виде списка.
  5. Отметьте галочками программы для удаления и нажмите кнопку Remove.
  6. PC Decrapifier предложит вам выполнить деинсталляцию прочих программ вручную. Выполните при необходимости.
  7. В последнем окне снимите галочку с пункта «Сформировать отзыв» (Submit feedback) и нажмите «Закончить» (Finish).

PC Decrapifier отлично справляется со сторонним софтом, тулбарами и навязанными при загрузке других программ приложениями.

Видео: обзор PC Decrepifier

CCleaner - комплексная очистка

Программа очищает пространство жёсткого диска и реестр Windows. Предусмотрен функционал для контроля автозагрузки и удаления установленного ранее софта. Дополнительный функционал располагается в меню «Сервис».

CCleaner находит больше установленных приложений, чем стандартный деинсталлятор Windows 7. А после деинсталляции он «подчищает» остаточные файлы и записи реестра. Чтобы удалить программу:

  1. Запустите CCleaner.
  2. Слева выберите пункт «Сервис».
  3. Найдите подпункт «Удаление программ».
  4. Из списка выберите программу для удаления и кликните пункт «Деинсталляция». Кнопка «Удалить» требуется, чтобы убрать название утилиты только из списка - с её помощью деинсталлировать приложение с ПК не удастся.

Чтобы отключить/включить автозагрузку программ:

  1. Откроется информация о программах, которые запускаются автоматически с Windows
  2. Выделите программу, для которой хотите отключить автозагрузку, и нажмите «Выключить».

CCleaner позволяет управлять автозагрузкой не только для Windows, но и для дополнений браузеров.

Видео: обзор CCleaner

IObit Uninstaller

IObit Uninstaller - простейший деинсталлятор программ с функцией очистки реестра. Утилита предлагает пользователю список приложений для деинсталляции. Он разделен на категории, переключаться между которыми можно в левом меню. IObit Uninstaller работает в двух режимах - стандартный и принудительное удаление.

Чтобы деинсталлировать утилиту с IObit в стандартном режиме:

  1. Выберите её из списка.
  2. Нажмите «Удалить» внизу окошка.
  3. Программа создаст точку восстановления, выполнит удаление ненужного приложения, а затем просканирует систему и реестр на наличие остаточных файлов и записей.
  4. После сканирования вы увидите список найденных компонентов и сможете удалить их окончательно.

Как деинсталлировать программу в принудительном режиме (требуется, когда файлы защищены от удаления):

  1. Выберите приложение, которое не подлежит деинсталляции в стандартном режиме, и нажмите «Удалить принудительно» (Forced Uninstall).
  2. Подтвердите деинсталляцию.

Режим принудительной деинсталляции можно использовать для любых файлов. Но будьте аккуратны! После удаления файла, программа проверит папку, в которой он находился, и очистит её от других файлов.

Видео: обзор IObit Uninstaller

Revo Uninstaller

Revo Uninstaller - программа, позволяющая стереть софт с компьютера без остатков. Чтобы деинсталлировать приложение:

  1. Включите Revo Uninstaller.
  2. Выделите ненужную программу и нажмите на значок «Удалить».
  3. В окошке подтверждения действия выберите «Да».
  4. Выберите метод деинсталляции программы: встроенный, безопасный, средний или расширенный. Опытным пользователям стоит воспользоваться расширенным методом.
  5. Нажмите «Далее». Revo Uninstaller удалит программу и проведёт сканирование Windows.
  6. В открывшемся окне будут отображены записи, оставшиеся в реестре. Отметьте их галочками и щёлкните «Удалить».
  7. В следующем окне будет отображён список папок и файлов, сохранённых после деинсталляции. Отметьте ненужные и нажмите «Удалить».

Помимо прямого указания выполнять программу в фоновом режиме, существует еще один способ перевести процесс в фоновый режим. Для этого необходимо выполнить следующие действия:

    запустить процесс выполняться на переднем плане;

    остановить выполнение процесса;

    продолжить процесс в фоновом режиме.

Для выполнения программы введем ее имя в командной строке и запустим на выполнение. Для остановки выполнения программы необходимо нажать на клавиатуре следующую комбинацию клавиш - +. После этого можно увидеть на экране следующее:

/home/student# yes > /dev/null

Stopped yes >/dev/null

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

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

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

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

Существует большая разница между фоновым и остановленным процессом. Остановленный процесс не выполняется и не потребляет ресурсы процесса, однако занимает оперативную память или пространство свопинга. В фоновом же режиме процесс продолжает выполняться.

Для приостановления фонового процесса необходимо переместить процесс на передний план, а затем остановить.

Завершение работы процесса

Существует несколько вариантов завершения работы процесса.

Вариант первый. Если процесс интерактивный, как правило, в документации или прямо на экране написано, как корректно завершить программу.

Вариант второй. В том случае, если не указано как можно завершить текущий процесс (не фоновый), то можно воспользоваться клавиатурной комбинацией +. Возможно использовать также комбинацию клавиш +. А для остановки фонового процесса можно перевести его на передний план, а затем уже воспользоваться вышеприведенными клавиатурными комбинациями.

Вариант третий и самый действенный. В том случае, если не удалось прекратить выполнение процесса вышеприведенными способами – например, программа зависла или "слетел" терминал - для завершения процесса можно воспользоваться следующими командами: kill, killall.

Команда kill может получать в качестве аргумента как номер процесса, так и идентификационный номер (PID) процесса. Таким образом, команда:

/home/student# kill 123 эквивалентна команде:

/home/student# kill %1

Можно видеть, что не надо использовать "%", когда вы обращаетесь к работе по идентификационному номеру (PID) процесса.

С помощью команды killall можно прекратить выполнение нескольких процессов сразу, имеющих одно и то же имя. Например, команда killall mc прекратит работу всех программ mc, запущенных от имени данного пользователя.

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

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

Не завершается процесс в «Диспетчере задач» (отказано в доступе). Почему?

Чтобы понять, какое именно решение по устранению возникшей проблемы использовать в каждом конкретном случае, для начала следует выяснить причины, вследствие которых они возникают. Почему же в «Диспетчере задач» не завершается процесс с указанием на отсутствие прав доступа?

Действительно, иногда это может быть связано с тем, что пользователь вошел в систему не под регистрацией администратора и пытается завершить критически важную системную службу или процесс, запущенный другим пользователем. Однако невозможность остановки работы какого-то приложения в основном связана даже не с системными процессами, а с программами, которые могли установиться на пользовательский компьютер самопроизвольно (вирусы, рекламные апплеты и т. д.). Обычно именно они могут блокировать завершение работы. Но бороться с такими проявлениями поведения и системных, и пользовательских программ или служб можно довольно просто.

Перезагрузка системы

Если не завершается процесс в «Диспетчере задач», что делать в первую очередь? Как правило, рядовые пользователи поступают достаточно просто. Если по каким-то причинам в «Диспетчере задач» Windows 10 не завершается процесс, они попросту перезагружают систему. Понятно, что полный рестарт и приводит к остановке всех служб. Но что если после перезагрузки процесс активируется снова? А ведь некоторые процессы, запускаемые вместе с системой, нельзя отследить даже в стандартном разделе автозагрузки.

Впрочем, если пользователь вошел в систему не под администраторской, а под собственной учетной записью, как уже понятно, нужно просто сменить пользователя.

Если не хотите постоянно перепрыгивать с одной записи на другую, администраторскую «учетку» можно и вовсе отключить, прописав в командной строке команду «net user Администратор active:no» (без кавычек). После этого все программы будут стартовать только с правами администратора (для некоторых приложений не будут выдаваться даже предупреждения безопасности службы контроля учетных записей UAC, которые многих пользователей несказанно раздражают).

Завершение активных процессов через командную строку

Но приведенные выше действия положительный эффект могут дать не всегда. Что же делать, если в «Диспетчере задач» не завершается процесс, который, скажем, перегружает центральный процессор или использует оперативную память слишком усердно? В такой ситуации оптимальным инструментом из тех, которые имеются в Windows-системах, станет командная консоль (cmd).

Ее необходимо запустить от имени админа (если учетная запись суперпользователя не отключена), а затем воспользоваться командой taskkill (всю информацию о дополнительных атрибутах можно просмотреть посредством ввода строки «taskkill /?».

Из всего списка нас более всего интересуют атрибуты «/F» и «/IM», которые дописываются после основной команды. Как это выглядит? Предположим, у нас в «Диспетчере задач» не завершается процесс «Гугл Хром». Команда принудительной остановки приложения будет выглядеть так: «taskkill /F /IM Chrome.exe» (опять же, без кавычек). Как уже понятно, такое решение приемлемо для исполняемых файлов программ. Если воспользоваться дополнительным ключом «/T», при вводе основной команды завершения работы выбранного приложения автоматически будут завершены и все дочерние процессы.

Остановка процессов с указанием идентификаторов

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

Его можно просмотреть в самом «Диспетчере задач», дополнительно активировав отображение столбца с ИД процесса. Основная же команда в этом случае примет такой вид: «taskkill /F PID 0000», где 0000 - определенный в «Диспетчере задач» идентификатор процесса.

В принципе, проблему, связанную с тем, что в «Диспетчере задач» не завершается процесс какой-то программы, можно решить, следуя советам специалистов Microsoft, которые опубликованы на странице поддержки. Суть состоит в том, чтобы загрузить с сайта специальный архив, содержащий набор инструментов PSTools, затем распаковать его на жесткий диск и переместить файл PsExec.exe или объект PsExec64.exe, в зависимости от архитектуры системы, в корень системного раздела (диска «С»), а затем через командную консоль выполнить команду «c:\psexec -i -d -s taskmgr.exe» (без кавычек). После этого в «Диспетчере задач» нужно будет выполнить все необходимые действия, связанные с остановкой определенных процессов, затем закрыть «Диспетчер» и удалить исходный файл PsExec из системного раздела.

Примечание: использовать этот метод даже на сайте корпорации рекомендуется только на свой страх и риск.

Использование утилиты Process Explorer

Куда проще воспользоваться небольшим приложением которое является альтернативой «Диспетчера задач», но с расширенными возможностями. Преимущество этой программы состоит в том, что устанавливать ее на жесткий диск не нужно, поскольку приложение изначально является портативным и запускается из одного исполняемого файла. После старта программы в ней достаточно выбрать искомый незавершаемый процесс или даже целое дерево процессов с дочерними апплетами, выбрав из меню ПКМ команды Kill Process или Kill Process Tree.

Кроме «убивания» ненужных процессов и задач эта утилита предоставляет еще и дополнительную информацию. Так, например, если это требуется, можно совершенно просто узнать, какой именно программой запущен тот или иной процесс.

Разблокирование доступа к файлам процесса

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

Сначала, как уже понятно, восстанавливается доступ к исходному файлу (узнать его можно непосредственно в «Диспетчере задач», выбрав из меню ПКМ просмотр расположения файла), а затем процесс завершается обычным способом.

Проблемы вирусного воздействия

Вирусы, к сожалению, ограничивать доступ к остановке процессов и служб тоже могут. И далеко не всегда это связано напрямую с самими вирусными апплетами. Если такая ситуация наблюдается, для начала рекомендуется проверить систему каким-нибудь портативным антивирусом, а при невозможности нейтрализации угроз обратиться к программе Kaspersky Rescue Disk, при помощи которой можно загрузиться еще до старта системы со съемного носителя, а затем выполнить глубокое сканирование, которое включает в себя даже оперативную память.

Краткий итог

Вот, собственно, и все, что касается принудительного завершения процессов в «Диспетчере задач». Что касается наилучшего инструмента, самым простым выглядит альтернативный менеджер Process Explorer. Если же под рукой такой программы нет, подойдет и командная строка. Единственное условие для выполнения всех вышеописанных команд - старт самой консоли с правами администратора.