Taskset — привязка процесса к ядрам CPU

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

Читать далее «Taskset — привязка процесса к ядрам CPU»

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

Для просмотра списка запущеных процессов используется команду tasklist. Выведу стандартную информацию по команде, tasklist /?:

TASKLIST [/S <система> [/U <имя пользователя> [/P [<пароль>]]]]
         [/M [<модуль>] | /SVC | /V] [/FI <фильтр>] [/FO <формат>] [/NH]
Описание:
    Отображает список процессов, которые
    исполняются в текущий момент на локальном или удаленном компьютере.
Список параметров:
   /S     <система>        Подключаемый удаленный компьютер.
   /U     [<домен>\]<пользователь>
                           Пользовательский контекст, в котором
                           должна выполняться эта команда.
   /P     [<пароль>]       Пароль для этого пользовательского контекста.
                           Запрашивает ввод пароля, если он не задан.
   /M     [<модуль>]       Отображение всех задач, которые используют данное
                           имя exe/dll. Если имя модуля не
                           указано, то отображаются все загруженные модули.
   /SVC                    Отображение служб для каждого процесса.
   /V                      Ведение подробного протоколирования.
   /FI    <фильтр>         Отображение списка задач, которые отвечают указанному в фильтре критерию.   /FO    <формат> Описание формата выходного файла. Допустимые значения: "TABLE", "LIST", "CSV".
   /NH                     Отключение отображения заголовка "Column Header" в выходных данных.
                           Допустимо для форматов "TABLE" и "CSV".
   /?                      Вывод справки по использованию.

Фильтры:
    Имя фильтра     Допустимые операторы           Допустимые значения
    -----------     ---------------           --------------------------
    STATUS          eq, ne                    RUNNING | NOT RESPONDING | UNKNOWN
    IMAGENAME       eq, ne                         Имя образа
    PID             eq, ne, gt, lt, ge, le         Значение PID
    SESSION         eq, ne, gt, lt, ge, le         Номер сессии
    SESSIONNAME     eq, ne                         Имя сессии
    CPUTIME         eq, ne, gt, lt, ge, le         Время CPU в формате hh:mm:ss. hh - часы, mm - минуты, ss - секунды
    MEMUSAGE        eq, ne, gt, lt, ge, le         Использование памяти в KБ
    USERNAME        eq, ne                         Имя пользователя в формате [<домен>\<пользователь>]
    SERVICES        eq, ne                         Имя службы
    WINDOWTITLE     eq, ne                         Название окна
    MODULES         eq, ne                         Имя DLL
Примечание: Фильтры "WINDOWTITLE" и "STATUS" не поддерживаются при опросе
      удаленного компьютера.
Примеры:
    TASKLIST
    TASKLIST /M
    TASKLIST /V /FO CSV
    TASKLIST /SVC /FO LIST
    TASKLIST /M wbem*
    TASKLIST /S <система> /FO LIST
    TASKLIST /S <система> /U <домен>\<пользователь> /FO CSV /NH
    TASKLIST /S <система> /U <пользователь> /P <пароль> /FO TABLE /NH
    TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"

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

TASKKILL [/S <система> [/U <пользователь> [/P [<пароль>]]]]
         { [/FI <фильтр>] [/PID <процесс> | /IM <образ>] } [/T] [/F]
Описание:
    Завершает процесс по его ID (PID) или имени образа.
Список параметров:
   /S   <система>                 Подключаемый удаленный компьютер.
   /U   [<домен>\]<пользователь>  Пользовательский контекст, в котором должна выполняться эта команда.
   /P   <пароль>                  Пароль для этого пользовательского контекста. Запрашивает пароль, если он не задан.
   /FI    <фильтр>               Применение фильтра для выбора набора задач. Разрешение использовать "*". Пример, imagename eq acme*
   /PID <процесс>                Идентификатор процесса, который требуется завершить. Используйте TaskList, чтобы получить PID.
   /IM  <образ>                   Имя образа процесса, который требуется завершить. Знак подстановки "*" может быть использован для указания всех заданий или имен образов.
   /T                            Завершение указанного процесса и всех его дочерних процессов.
   /F                            Принудительное завершение процесса.
   /?                             Вывод справки по использованию.
Фильтры:
    Имя фильтра   Допустимые операторы           Допустимые значения
    STATUS        eq, ne                    RUNNING | NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    Имя образа
    PID           eq, ne, gt, lt, ge, le    Значение PID
    SESSION       eq, ne, gt, lt, ge, le    Номер сессии
    CPUTIME       eq, ne, gt, lt, ge, le    Время CPU в формате hh:mm:ss. hh - часы, mm - минуты, ss - секунды
    MEMUSAGE      eq, ne, gt, lt, ge, le    Использование памяти в КБ
    USERNAME      eq, ne                    Имя пользователя в формате [<домен>\]<пользователь>
    MODULES       eq, ne                    Имя DLL
    SERVICES      eq, ne                    Имя службы
    WINDOWTITLE   eq, ne                    Заголовок окна
    Примечание
    1) Символ '*' для параметра /IM применим только совместно с фильтрами.
    2) Завершение удаленных процессов всегда будет принудительным (/F).
    3) Фильтры "WINDOWTITLE" и "STATUS" не принимаются во внимание, когда
       компьютер является удаленным.
Примеры:
  TASKKILL /IM notepad.exe
  TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
  TASKKILL /F /IM cmd.exe /T
  TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
  TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
  TASKKILL /S <система> /U <домен>\<пользователь> /FI "USERNAME ne NT*" /IM *
  TASKKILL /S <система> /U <пользователь> /P <пароль> /FI "IMAGENAME eq note*"

Для завершения процессов можно также использовать команду tskill.
Пример для поиска PID процесса по открытому порту:
netstat -o -n -a | findstr 0.0:80

Как в Linux узнать PID процесса и убить его?

В операционных системах Linux каждый процесс имеет свой идентификатор (PID).

Выводим список всех процессов и смотрим их PID:

Читать далее «Как в Linux узнать PID процесса и убить его?»