Подпишись и читай
самые интересные
статьи первым!

Остановка процесса. Временная остановка выполнения процесса

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

Остановите вредоносный процесс с помощью диспетчера задач:

  • Чтобы открыть Диспетчер задач, Вы должны одновременно нажать комбинацию клавиш ctrl+shift+esc или ctrl+alt+del .
  • Как только появится Диспетчер задач, выберите закладку Процессы и отыщите вредоносные процессы в списке.
  • Щелкните их правым щелчком мыши и выберите Завершить . Вредоносный процесс легче будет отыскать в списке сразу после запуска Windows.

Если вирус ведет себя агрессивно и оставляет Диспетчер задач неактивным, зайдите в Пуск -> Выполнить и введите ‘taskmgr ‘ без кавычек или проследуйте по адресу C:\Windows\System32 , скопируйте taskmgr и переименуйте его другим именем, например, iexplorer.exe. Теперь запустите диспетчер и выполните указанные выше действия.

Если Вы правильно определили и обезвредили вредоносный процесс, Вы должны заметить исчезновение надоедливых предупреждений и подобных симптомов присутствия вируса. Однако имейте в виду, что описанная выше процедура не УДАЛЯЕТ вирус полностью. Чтобы сделать это, Вам следует продолжить удаление вредоносного ПО путем сканирования системы надежной антишпионской программы.

Остановите вредоносный процесс при помощи безопасного режима:

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

  • Перезагрузите компьютер и, как только ПК начнет загружаться, многократно нажимайте F8 .
  • Затем выберите Безопасный режим или Безопасный режим с загрузкой сетевых драйверов .
  • Теперь Вы должны заметить, что вирус со всеми его симптомами исчез. Это означает, что Вы успешно завершили вредоносный процесс.

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

Устраните вредоносный процесс с помощью команды Taskkill:

Если на Вашем зараженном компьютере установлена операционная система Windows, Вы можете попытаться воспользоваться командой Taskkill и её опцией /IM, которая позволяет устранять процессы по их идентификаторам или по именам их образов. Данное средство очень эффективно, если Вы пытаетесь удалить ненужное приложение. Однако Вам следует знать, что это командное средство доступно только в том случае, если Вы точно знаете имена вредоносных процессов.

  • Чтобы открыть taskkill, щелкните Пуск → Выполнить .
  • Теперь введите taskkill/f/im [имя вредоносного процесса].
  • Нажмите Enter .

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

Остановите вредоносные процессы с помощью Process Explorer:

Process Explorer не только позволяет пользователям устранить вредоносные процессы. Он также показывает информацию об активных процессах и об их расположении. Чтобы воспользоваться им для блокирования вредоносных процессов, выполните следующие действия:

  • Скачайте Process Explorer путём ввода в адресную строку броузере ссылки:http://download.sysinternals.com/Files/ProcessExplorer.zip .
  • Запустите Process Explorer (procexp.exe), а затем отыщите вредоносные процессы.
  • Выберите их мышью и нажмите DEL для их удаления.

Теперь просканируйте компьютер с помощью или другой уважаемой антишпионской программы для завершения удаления вируса.

В этом отрывке рассмотрены команды управления процессами. Вы научитесь замораживать процессы, размораживать, отправлять в фоновый режим, изменять приоритет, просматривать запущенные процессы и жестоко их убивать. Введено понятие сигналов. Рассмотрены такие команды, как bg, fg, jobs, kill, nohup, nice, renice, ps и top.

Об авторах

Daniel Robbins

Дэниэль Роббинс - основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo , написал множество технических статей для IBM developerWorks , Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure .

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее - платформа HP ePrint . В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Не справляется с этой задачей.

Иногда возникает необходимость вручную завершить процесс, который не отвечает. В большинстве случаев это можно сделать с помощью Диспетчера задач Windows, однако порой ему не удается справиться с вышедшим из под контроля приложением. Мне часто приходилось сталкиваться с этим при попытке завершить процесс Acronis. В такой ситуации я обычно использую более мощный инструмент - команду taskkill.

Чтобы воспользоваться taskkill, нужно открыть окно командной строки. Для этого вызовите окно «Выполнить» (Run) из меню «Пуск» (Start) или воспользуйтесь клавишной комбинацией +[R] и введите «cmd» (без кавычек) в поле «Открыть» (Open, рис. A).

Рисунок A. Откройте окно командной строки.

Использование команды taskkill

Общий синтаксис команды выглядит следующим образом:

Taskkill [ОПЦИИ] [ИДЕНТИФИКАТОР ПРОЦЕССА]
Разумеется, для taskkill доступен широкий выбор опций. Перечислю лишь наиболее полезные из них:

/s КОМПЬЮТЕР, где КОМПЬЮТЕР - это IP или адрес удаленного компьютера. По умолчанию, операция выполняется в локальной системе. Если именно это вас и интересует, данную опцию можно не использовать.

/u ДОМЕН\ПОЛЬЗОВАТЕЛЬ , где ДОМЕН - это имя домена, а ПОЛЬЗОВАТЕЛЬ - имя пользователя, для которого нужно выполнить команду. Данная опция позволяет запускать taskkill с правами определенной учетной записи или домена.

/p - обязательно используется в сочетании с опцией /u для указания пароля к учетной записи пользователя.

/fi - позволяет выполнять команду taskkill с определенными фильтрами.

/f - принудительно завершает выполнение команды.

/IM - позволяет использовать имя приложения вместо идентификатора процесса.

Ну и разумеется, одна из самых полезных опций - переключатель для вызова справки (рис. В):

Taskkill /?


Рисунок B. Вывод справочной информации по команде taskkill при использовании переключателя справки.

Завершение процесса по имени приложения

Проще всего завершить вышедший из-под контроля процесс, воспользовавшись командой taskkill с использованием опции /IM. Выглядеть это будет так:

Taskkill /IM ИМЯ_ПРИЛОЖЕНИЯ
Здесь ИМЯ_ПРИЛОЖЕНИЯ - это имя процесса, который требуется завершить. К примеру, если Outlook не удается закрыть, можно воспользоваться следующей командой:

Taskkill /IM outlook.exe
Завершение процесса по идентификатора

Если вы не знаете имени процесса, но знаете его идентификатор (PID) - например, 572 - можно воспользоваться следующей командой:

Taskkill /PID 572
Завершение всех процессов для определенной учетной записи

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

Taskkill /F /FI “USERNAME eq имя_пользователя”
Здесь имя_пользователя - это имя учетной записи, под которой запущены нежелательные процессы. Обязательно нужно включить в команду опцию USERNAME, чтобы указать соответствующее имя пользователя.

Завершение процессов на удаленном компьютере

Еще одна удобная возможность - завершение процессов в удаленном режиме. Допустим, вы точно знаете, что система не отвечает из-за определенного процесса (возьмем для примера все тот же Outlook). В таком случае можно воспользоваться другим компьютером и выполнить следующую команду:

Taskkill /s IP-АДРЕС /u ДОМЕН\ПОЛЬЗОВАТЕЛЬ /IM Outlook.exe
Здесь IP-АДРЕС - адрес удаленного компьютера (можно использовать и имя хоста, если компьютеры способны распознавать друг друга таким способом), ДОМЕН - имя домена (если требуется), а ПОЛЬЗОВАТЕЛЬ - имя пользователя, под которым был осуществлен вход на удаленный компьютер.

В заключение

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

Несмотря на то что 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 очень опасна, но так делать не стоит. Надеюсь, эта информация была полезна для вас.

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

Возможность завершить процесс из командной строки дает нам команда TaskKill . Вы можете убить процесс из командной строки по его идентификатору (PID) или по имени образа (имени exe файла). Запустите консоль от имени администратора и введите команду tasklist , чтобы просмотреть все запущенные процессы.

C:\tasklist Имя образа PID Имя сессии № сеанса Память ========================= ======== ================ =========== ============ System Idle Process 0 Services 0 24 КБ System 4 Services 0 1 256 КБ conhost.exe 5944 Console 2 2 888 КБ notepad.exe 3100 Console 2 7 400 КБ tasklist.exe 8892 Console 2 6 100 КБ WmiPrvSE.exe 7340 Services 0 6 864 КБ smss.exe 372 Services 0 544 КБ csrss.exe 536 Services 0 3 336 КБ wininit.exe 812 Services 0 436 КБ

В приведенном выше примере можно увидеть имя образа и PID для каждого процесса. Если вы хотите убить процесс Notepad? то нужно ввести:

taskkill /IM notepad.exe /F

Флаг /F – нужен для принудительного завершения процесса. Если его не использовать, то в некоторых случаях ничего не произойдет, приложение продолжит свою работу. Как пример попытка завершения процесса explorer.exe без этого флага ни к чему не приведет.

Если у вас есть несколько экземпляров приложений, как например chrome, то выполнение команды taskkill /IM. chrome.exe завершит их все. При указании PID можно завершить только конкретные процессы Chrome.

В taskkill есть варианты фильтрации, которые позволяют использовать следующие переменные и операторы:

Переменные

  • STATUS (статус)
  • IMAGENAME (имя образа)
  • PID (значение)
  • SESSION (номер сессии)
  • CPUTIME (время CPU)
  • MEMUSAGE (использование памяти в кб)
  • USERNAME (имя пользователя)
  • MODULES (имя DLL)
  • SERVICES (имя службы)
  • WINDOWTITLE (заголовок окна)

Операторы

  • eq (равно)
  • ne (не равно)
  • gt (больше чем)
  • lt (меньше чем)
  • ge (больше или равно)
  • le (меньше или равно)
  • * (любые символы)

Вы можете использовать переменные и операторы с флагом /FI.

Например, допустим вы хотите, завершить все процессы, у которых заголовок окна начинается с “Интернет”, то команда будет следующей:

taskkill /FI “WINDOWTITLE eq Internet*” /F

Чтобы завершить все процессы запущенные от имени Marina:

taskkill /FI “USERNAME eq Marina” /F

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

taskkill /S OperatorPC /U Имя_пользователя_на_удаленной_машине /P Пароль_от_удаленной_машины /IM notepad.exe /F

Подробную информацию вы всегда можете получить запустив taskkill с ключом /?

Завершить процесс из командной строки

Включайся в дискуссию
Читайте также
Как считать прибыль формула
Роялти по лицензионным договорам
Есть способ спрогнозировать поступление денежных средств на ближайший месяц