Как получить подробные сведения о процессах в Windows 7. Что такое pid процесса


Управление процессами в Linux | Losst

Как вы думаете, операционная система Linux может автоматически позаботиться сама о себе? Когда работает все нормально или вам не нужны никакие нестандартные возможности — вполне да. Но иногда может понадобиться ваше вмешательство в ее работу.

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

В этой статье будет затронута обширная тема, мы рассмотрим такие возможности:

  • Просмотр запущенных процессов
  • Просмотр информации о процессах
  • Поиск процессов в Linux
  • Изменение приоритета процессов
  • Завершение процессов
  • Ограничение памяти доступной процессу

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

Содержание статьи:

Что такое процесс?

Начнем с того, что разберемся в терминах. По сути, процесс — это каждая программа. Как я уже говорил для каждой запускаемой программы создается отдельный процесс. В рамках процесса программе выделяется процессорное время, оперативная память и другие системные ресурсы. У каждого процесса есть свой идентификатор, Proccess ID или просто PID, по ним, чаще всего и определяются процессы Linux. PID определяется неслучайно, как я уже говорил, программа инициализации получает PID 1, а каждая следующая запущенная программа — на единицу больше. Таким образом PID пользовательских программ доходит уже до нескольких тысяч.

На самом деле, процессы Linux не настолько абстрактны, какими они вам сейчас кажутся. Их вполне можно попытаться пощупать. Откройте ваш файловый менеджер, перейдите в корневой каталог, затем откройте папку /proc. Видите здесь кучу номеров? Так вот это все — PID всех запущенных процессов. В каждой из этих папок находится вся информация о процессе.

Например, посмотрим папку процесса 1. В папке есть другие под каталоги и много файлов. Файл cmdline содержит информацию о команде запуска процесса:

cat /proc/1/cmdline

/usr/lib/systemd/systemd

Поскольку у меня используется система инициализации Systemd, то и первый процесс запускается для нее. С помощью каталога /proc можно сделать все. Но это очень неудобно, особенно учитывая количество запущенных процессов в системе. Поэтому для реализации нужных задач существуют специальные утилиты. Перейдем к рассмотрению утилит, которые позволяют реализовать управление процессами в Linux.

Управление процессами в Linux

В Linux есть очень большое количество утилит для решения различных задач по управлению процессами. Это и такие многофункциональные решения, как htop, top, а также простые утилиты, например, ps, kill, killall, who и т д. Я не буду рассматривать в этой статье графические утилиты, и top тоже рассматривать не буду. Первое потому что слишком просто, второе — потому что htop лучше. Мы остановимся на работе с программой htop и ее аналогами в форме утилит в стиле GNU, одна утилита — одна функция.

Давайте установим htop, если она у вас еще не установлена. В Ubuntu это делается так:

sudo apt install htop

В других дистрибутивах вам нужно просто использовать свой менеджер пакетов. Имя пакета такое же.

Посмотреть запущенные процессы

Это очень простая задача, и также просто она решается. Для этого существует множество утилит, начиная от обычной ps, до более продвинутых интерактивных top, htop и так далее.

Открыв htop, мы сразу видим список запущенных процессов. Конечно, здесь отображены не все процессы linux, их-то в системе очень много, вы уже знаете, все они на один экран не поместятся. По умолчанию выводятся процессы, запущенные от имени вашего пользователя:

htop

Вы можете увидеть такую информацию о процессе:

  • PID — идентификатор процесса
  • USER — пользователь, от которого был запущен процесс
  • PRI — приоритет процесса linux на уровне ядра (обычно NI+20)
  • NI — приоритет выполнения процесса от -20 до 19
  • S — состояние процесса
  • CPU — используемые ресурсы процессора
  • MEM — использованная память
  • TIME — время работы процесса

К отображению можно добавить и дополнительные параметры, но эти главные. Добавить параметры можно с помощью меню Setup. Там все очень просто, читайте подсказки и следуйте указаниям. Например, добавлен параметр PPID:

 

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

htop2

Также есть интересная возможность разместить процессы в виде дерева. Вы сможете увидеть, каким процессом был запущен тот или иной процесс. Для отображения дерева нажмите кнопку F5:

htop3

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

ps

Рассмотрим основные опции, которые будем использовать:

  • -e — вывести информацию обо всех процессах
  • -a — вывести информацию обо всех наиболее часто запрашиваемых процессах
  • -t — показывать только процессы из этого терминала
  • -p — показывать информацию только об указанном процессе
  • -u — показывать процессы только определенного пользователя

Одним словом, чтобы посмотреть все активные на данный момент процессы в linux, используется сочетание опций aux:

ps aux

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

ps aux --sort=%mem

Список будет отсортирован в обратном порядке, внизу значения больше, вверху — меньше. Если нужно в обратном порядке, добавьте минус:

ps aux --sort=-%cpu

ps1

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

ps aux | tail

Казалось бы, у ps нет возможности стоить деревья процессов. Но не совсем, для этого существует отдельная команда:

pstree

pstree

Поиск процессов в Linux

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

Чтобы найти процесс linux в htop можно использовать кнопку F3. Нажмите F3 и наберите нужное слово. Дальше чтобы перейти к следующему вхождению нажимайте F2 или Esc для завершения поиска:

htop4

Для поиска процессов в htop можно использовать также фильтр htop. Нажмите F4, введите слово и будут выведены только процессы linux, имя которых включает это слово.

htop6

В утилите ps фильтрации нет, но зато мы можем использовать утилиту grep, перенаправив вывод ps на нее чтобы найти процесс linux:

ps aux | grep chromium

Это очень часто употребляемая команда.

Изменение приоритета процессов

Приоритет процесса linux означает, насколько больше процессорного времени будет отдано этому процессу по сравнению с другими. Так мы можем очень тонко настроить какая программа будет работать быстрее, а какая медленнее. Значение приоритета может колебаться от 19 (минимальный приоритет) до -20 — максимальный приоритет процесса linux. Причем, уменьшать приоритет можно с правами обычного пользователя, но чтобы его увеличить нужны права суперпользователя.

В htop для управления приоритетом используется параметр Nice. Напомню, что Priv, это всего лишь поправка, она в большинстве случаев больше за Nice на 20. Чтобы изменить приоритет процесса просто установите на него курсор и нажимайте F7 для уменьшения числа (увеличения приоритета) или F8 — для увеличения числа.

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

nice -n 10 apt-get upgrade

Или изменить приоритет для уже существующего по его pid:

renice -n 10 -p 1343

 Завершение процессов в Linux

Если процесс завис и не отвечает, его необходимо завершить. В htop, чтобы убить процесс Linux, просто установите курсор на процесс и нажмите F9:

htop7

Система для управления процессами использует определенные сигналы, есть сигналы, которые указывают процессу завершиться. Вот несколько основных сигналов:

  • SIGKILL — попросить процесс сохранить данные и завершится
  • SIGTERM — завершить процесс немедленно, без сохранения

Вообще сигналов есть несколько десятков, но мы не будем их рассматривать. Отправим сигнал SIGKILL:

Также можно воспользоваться утилитой kill:

kill -TERM 1943

Также можно уничтожить процесс по имени:

killall chromium

Ограничение процессов

Управление процессами в Linux позволяет контролировать практически все. Вы уже видели что можно сделать, но можно еще больше. С помощью команды ulimit и конфигурационного файла /etc/security/limits.conf вы можете ограничить процессам доступ к системным ресурсам, таким как память, файлы и процессор. Например, вы можете ограничить память процесса Linux, количество файлов и т д.

Запись в файле имеет следующий вид:

<домен> <тип> <элемент> <значение>

  • домен — имя пользователя, группы или UID
  • тип — вид ограничений — soft или hard
  • элемент — ресурс который будет ограничен
  • значение — необходимый предел

Жесткие ограничения устанавливаются суперпользователем и не могут быть изменены обычными пользователями. Мягкие, soft ограничения могут меняться пользователями с помощью команды ulimit.

Рассмотрим основные ограничения, которые можно применить к процессам:

  • nofile — максимальное количество открытых файлов
  • as — максимальное количество оперативной памяти
  • stack — максимальный размер стека
  • cpu — максимальное процессорное время
  • nproc — максимальное количество ядер процессора
  • locks — количество заблокированных файлов
  • nice — максимальный приоритет процесса

Например, ограничим процессорное время для процессов пользователя sergiy:

sergiy hard nproc 20

Посмотреть ограничения для определенного процесса вы можете в папке proc:

cat /proc/PID/limits

Max cpu time unlimited unlimited secondsMax file size unlimited unlimited bytesMax data size unlimited unlimited bytesMax stack size 204800 unlimited bytesMax core file size 0 unlimited bytesMax resident set unlimited unlimited bytesMax processes 23562 23562 processesMax open files 1024 4096 filesMax locked memory 18446744073708503040 18446744073708503040 bytesMax address space unlimited unlimited bytesMax file locks unlimited unlimited locksMax pending signals 23562 23562 signalsMax msgqueue size 819200 819200 bytesMax nice priority 0 0Max realtime priority 0 0Max realtime timeout unlimited unlimited us

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

Вот опции команды:

  • -S — мягкое ограничение
  • -H — жесткое ограничение
  • -a — вывести всю информацию
  • -f — максимальный размер создаваемых файлов
  • -n — максимальное количество открытых файлов
  • -s — максимальный размер стека
  • -t — максимальное количество процессорного времени
  • -u — максимальное количество запущенных процессов
  • -v — максимальный объем виртуальной памяти

Например, мы можем установить новое ограничение для количества открываемых файлов:

ulimit -Sn 1024

Теперь смотрим:

ulimit -Sn

Установим лимит оперативной памяти:

ulimit -Sv 500000

Напоминаю, что это ограничение будет актуально для всех программ, выполняемых в этом терминале.

Выводы

Вот и все. Теперь управление процессами в Linux не вызовет у вас проблем. Мы рассмотрели очень даже подробно эту тему. Если у вас остались вопросы или есть предложения по дополнению статьи, пишите в комментариях!

losst.ru

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

Навоз недалеко от того, кого слабит (Пословица).

Как убить процесс в LinuxКак убить процесс в LinuxМы покажем вам, как убить процесс в Linux. Одним из главных преимуществ Linux, является возможность завершить процесс без необходимости перезагрузки сервера. В этой статье мы покажем вам, как убить процесс в Linux с помощью команды kill, pkill и killall.

1. Что такое PID

Прежде чем мы начнем, мы должны знать, что такое ID процесса (PID).

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

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

 

Это дает нам список всех запущенных процессов и их соответствующие PIDы.

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

 

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

 

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

2. Убить процесс с помощью команды kill в Linux

Есть несколько важных правил, которые мы должны знать, прежде чем начать использовать команду kill.

  • Вы можете убить только собственные процессы, которые принадлежат вашему идентификатору пользователя
  • Вы не можете убивать процессы других пользователей
  • Вы не можете убить системные процессы (если вы не суперпользователь)
  • Пользователь root может убить процесс любого другого пользователя и любой системный процесс

Когда мы убиваем процесс с командой kill, мы на самом деле отправляем конкретный сигнал PID-регулятор, который мы хотим убить. Следующие сигналы используются командой kill:

1 = Hung up 9 = Kill 15 = Terminate

1 = Hung up

9 = Kill

15 = Terminate

 

Сигнал hung up используется редко. Чаще всего мы используем сигнал kill, и если он не работает, то мы можем использовать сигнал Terminate.

Поэтому, как только мы находим PID процесса, который мы хотим убить, используйте один из методов, описанных нами ранее, мы можем использовать команду kill -9 PID, чтобы убить процесс с этого конкретного PID.

Например, если PID равный 6738, то мы можем использовать следующую команду:

3. Убить процесс с помощью команды pkill в Linux

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

4. Убить процесс с помощью команды killall в Linux

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

 

В этом примере мы убьем процесс MySQL и все его дочерние процессы.

Они являются наиболее распространенными примерами убийства процесса в Linux.

 

Простая логическая игра "Поймай кота". Задача игры окружить кота точками так, чтобы он не смог убежать с поля. Постигла неудача - начни игру снова!

andreyex.ru

Перечислите с пояснениями параметры процесса, отраженные во вкладке Environment в свойствах процесса.

Поиск Лекций

Лабораторная работа №3

На тему: Управление процессами в ОС Windows

По дисциплине: Операционные Системы и Среды

 

 

 

Выполнил:Студент группы 233Николаенков Владимир

Оценка:_______

Проверил:Сорокин Д.Ю.Дата: 07.12.11

Подпись:_______

 

Санкт-Петербург2011г.

Цель работы: изучение возможностей контроля и управления процессами в операционных системах Windows

Ход выполнения работы

1)Запустив программу Process Explorer, мы увидели список процессов, как только мы открываем несколько приложений, то информация о них, добавляется в этот список.

2)Далее мы запускаем диспетчер задач. Ниже приведена таблица сравнения возможностей:

Process explorer
+ -
Показывает DLL и handles Более сложный интерфейс, из-за чего не подходит простым пользователям
Показывает процессы, от родительского Не показывает задачи, а только процессы
Показывает PID процессов.  
Разделяет процессы по группам, методом выделения соответствующим цветом.  
№ 12 Показать дерево пользовательских процессов Дефрагментация диска Определить используемые DLL (5-6 штук)

 

1. Показать дерево пользовательских процессов.

Чтобы показать дерево пользовательских процессов надо:

1) Сначала нажать View – Show Process Tool

2) После чего в том же меню убрать галку около строки Show Processes From All users

 

2. Опишите один из системных процессов (выпишите основные характеристики процесса).

Системный процесс taskhost.exe

1) PID: 2376

2) CPU: –

3) Description: Хост-процесс для задач Windows

4) Company Name: Microsoft Corporation

5) Set priority: Normal 8

 

3. Запустите указанное приложение.

Через свойства диска С в моём компьютере, запускаем Дефрагментацию диска.

 

4. Выполните действие согласно варианту. (Определить используемые DLL)

1) Для открытия окна которое, показывает список DLL файлов, нужно

в меню View – Lower Pane View – DLLs.

2) Теперь у нас открыто окно, для отображения DLL, далее выбираем нужный процесс.

3) К сожжению процесс Дефрагментации диска (dfrgui.exe), почему-то DLL не показал, поэтому рассмотрим DLL процесса Skype.exe

4) DLL skype.exe

 

 

5. Принудительно завершите созданный процесс.

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

 

 

Контрольные вопросы:

Что такое процесс?

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

Из чего состоит процесс?

Процесс состоит из:

1) Код программы

2) Данные программы

3) Контекст.

Что такое контекст процесса?

Контекст: содержание различных регистров ЦП; приоритет процесса; информация об ожидаемых событиях и перечень предоставленных процессу ресурсов.

Своими словами объясните, что такое handles.

Это список открытых процессом файлов.

Своими словами объясните, что такое DLL.

Это библиотеки и приложения, доступные данному процессу.

Что такое приоритет?

Это некоторое числовое значение, которое влияет на место процесса в очереди.

Что такое PID?

Это идентификационный номер процесса.

В чем главное преимущество стандартного Диспетчера Задач по сравнению с утилитой ProcExp?

В простом интерфейсе. Т.к. он создан для простого пользователя ПК, то нет тех характеристик, которые пользователь, всё равно не понял бы.

Перечислите с пояснениями параметры процесса, отраженные во вкладке Environment в свойствах процесса.

Содержит в себе два столбца Variable(Переменная) и Value(Значение)

В первом указано службы доступные процессу.

Второй содержит в себе адрес либо числовое значение расположения службы.

poisk-ru.ru

Список процессов Linux | Losst

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

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

Содержание статьи:

Что такое процесс?

Процесс Linux — это экземпляр программы, запущенный в памяти. Все процессы можно разделить на обычные и фоновые. Более подробно об этом написано в статье управление процессами Linux. Linux — это многопользовательская система, каждый пользователь может запускать одни и те же программы, и даже один пользователь может захотеть запустить несколько экземпляров одной программы, поэтому ядру нужно как-то идентифицировать такие однотипные процессы. Для этого каждому процессу присваивается PID (Proccess Identificator).

Каждый из процессов может находиться в одном из таких состояний:

  • Запуск — процесс либо уже работает, либо готов к работе и ждет, когда ему будет дано процессорное время;
  • Ожидание — процессы в этом состоянии ожидают какого-либо события или освобождения системного ресурса. Ядро делит такие процессы на два типа — те, которые ожидают освобождения аппаратных средств и приостановление с помощью сигнала;
  • Остановлено — обычно, в этом состоянии находятся процессы, которые были остановлены с помощью сигнала;
  • Зомби — это мертвые процессы, они были остановлены и больше не выполняются, но для них есть запись в таблице процессов, возможно, из-за того, что у процесса остались дочерние процессы.

А теперь давайте перейдем ближе к практике и поговорим о том, как узнать запущенные процессы linux.

Список процессов Linux

Самые популярные команды для решения этой задачи — это ps, top и htop. Последние две команды мы уже рассматривали в предыдущих статьях, собственно, они интерактивные и с ними у вас не возникнет проблем. Сейчас же хотелось бы остановиться более детально на ps. Сначала рассмотрим общий синтаксис команды, здесь все очень просто:

$ ps опции

$ ps опции | grep параметр

Во втором варианте мы используем утилиту grep для того, чтобы отобрать нужные нам процессы по определенному критерию. Теперь рассмотрим опции утилиты. Они делятся на два типа — те, которые идут с дефисом Unix и те, которые используются без дефиса — BSD. Лучше пользоваться только опциями Unix, но мы рассмотрим и одни и другие. Заметьте, что при использовании опций BSD, вывод утилиты будет организован в BSD стиле.

  • -A, (a) — выбрать все процессы;
  • -a — выбрать все процессы, кроме фоновых;
  • -d, (g) — выбрать все процессы, даже фоновые, кроме процессов сессий;
  • -N — выбрать все процессы кроме указанных;
  • -С — выбирать процессы по имени команды;
  • -G — выбрать процессы по ID группы;
  • -p, (p) — выбрать процессы PID;
  • —ppid — выбрать процессы по PID родительского процесса;
  • -s — выбрать процессы по ID сессии;
  • -t, (t) — выбрать процессы по tty;
  • -u, (U) — выбрать процессы пользователя.

Опции форматирования:

  • -с — отображать информацию планировщика;
  • -f — вывести максимум доступных данных, например, количество потоков;
  • -j, (j) — вывести процессы в стиле Jobs, минимум информации;
  • -M, (Z) — добавить информацию о безопасности;
  • -o, (o) — позволяет определить свой формат вывода;
  • —sort, (k) — выполнять сортировку по указанной колонке;
  • -L, (H)— отображать потоки процессов в колонках LWP и NLWP;
  • -m, (m) — вывести потоки после процесса;
  • -V, (V) — вывести информацию о версии;
  • -H — отображать дерево процессов linux;

Теперь, когда вы знаете синтаксис и опции, можно перейти ближе к практике и посмотреть запущенные процессы в Linux. Чтобы просто посмотреть процессы в linux в текущей оболочке используйте команду без параметров:

ps

Все процессы, кроме лидеров групп, в том же режиме отображения:

ps -A 

Все процессы, включая фоновые и лидеры групп:

ps -d

Чтобы вывести больше информации о процессах используйте опцию -f:

ps -f

 

 

При использовании опции -f команда выдает такие колонки:

  • UID — пользователь, от имени которого запущен процесс;
  • PID — идентификатор процесса;
  • PPID — идентификатор родительского процесса;
  • C — процент времени CPU, используемого процессом;
  • STIME — время запуска процесса;
  • TTY — терминал, из которого запущен процесс;
  • TIME — общее время процессора, затраченное на выполнение процессора;
  • CMD— команда запуска процессора;
  • LWP — показывает потоки процессора;
  • PRI — приоритет процесса.

Например, также можно вывести подробную информацию обо всех процессах:

ps -Af

Больше информации можно получить, использовав опцию -F:

ps -Fe

 

 

Если вы хотите получить еще больше информации, используйте вместо -f опцию -l:

ps -l

 

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

ps -fu root

 

С помощью опции -H можно отобразить дерево процессов:

ps -fHu root

Если вас интересует информация только об определенном процессе, то вы можете использовать опцию -p и указать pid процесса linux:

ps -fp 1

Через запятую можно указать несколько PID:

ps -fp 1,2,3

Опция -С позволяет фильтровать процессы по имени, например, выберем только процессы chrome:

ps -fC chrome

Дальше можно использовать опцию -L чтобы отобразить информацию о процессах:

ps -fL

Очень интересно то, с помощью опции -o можно настроить форматирование вывода, например, вы можете вывести только pid процесса linux и команду:

 ps -o pid,comm

Вы можете выбрать такие колонки для отображения: pcpu, pmem, args, comm, cputime, pid, gid, lwp, rss, start, user,vsize,priority. Для удобства просмотра можно отсортировать вывод программы по нужной колонке, например, просмотр процессов linux, которые используют больше всего памяти:

ps -Fe --sort rss

Или по проценту загрузки cpu:

ps -FA --sort pcpu

Еще одна опция — M, которая позволяет вывести информацию про права безопасности и флаги SELinux для процессов:

ps -eM

Общее количество запущенных процессов Linux можно узнать командой:

ps -e | wc

Мы рассмотрели все основные возможности утилиты ps. Дальше вы можете поэкспериментировать с ее параметрами и опциями чтобы найти нужные комбинации, также можно попытаться применить опции BSD.

Выводы

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

losst.ru

Как получить подробные сведения о процессах в Windows 7 | Сведения о процессах в Windows 7

В статье «Анализ использования памяти с помощью Монитора ресурсов Windows 7» я рассказывал, как использовать Монитор ресурсов (Resource Monitor) для анализа распределения памяти в Windows 7. При этом я упомянул, что графа «Образ» (Image) в таблице «Процессы» (Processes) на вкладке «Память» (Memory) позволяет идентифицировать процессы приложений по имени исполняемого файла. Например, процесс «notepad.exe» со всей очевидностью принадлежит Блокноту (Notepad).

Однако далеко не все процессы можно так легко опознать, и я получил уже немало вопросов от читателей по этому поводу. С идентификацией менее очевидных процессов поможет Диспетчер задач (Task Manager), и в этой статье я расскажу, как его использовать.

Запуск Диспетчера задач

Запустить Диспетчер задач в Windows 7 можно несколькими способами. Во-первых, можно нажать на панели задач правой кнопкой мыши и выбрать опцию «Запустить диспетчер задач» (Start Task Manager). Во-вторых, можно воспользоваться клавишной комбинацией [Ctrl]+[Shift]+[Esc]. И наконец в-третьих, можно запустить исполняемый файл Диспетчера задач из строки поиска меню «Пуск» (Start) — для этого введите taskmgr и нажмите [Enter]. В открывшемся окне выберите вкладку «Процессы» (Processes).

Графа «Описание»

На вкладке «Процессы» есть графа «Описание» (Description, рис. A), в которой приводятся подробные сведения о каждом процессе.

Как получить подробные сведения о процессах в Windows 7Рисунок A. Информация в графе «Описание» помогает идентифицировать процесс.

Добавление столбцов на вкладке «Процессы»

Чтобы получить более подробные сведения о процессах Windows 7, воспользуйтесь командой «Выбрать столбцы» (Select Columns) в меню «Вид» (View). Появится диалоговое окно «Выбор столбцов страницы процессов» (Select Process Page Columns), показанное на рис. B. Отсюда можно добавить на вкладку «Процессы» дополнительные колонки — например, столбец «Путь к образу» (Image Path Name), в котором указывается полный путь к файлу, инициировавшему запущенный процесс Windows 7, или графу «Командная строка» (Command Line), где приводится полная команда для запуска процесса со всеми параметрами и переключателями.

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

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

Опция «Открыть место хранения файла»

Помимо добавления на вкладку столбцов «Путь к образу» и «Командная строка», можно нажать на процессе правой кнопкой мыши и выбрать опцию «Открыть место хранения файла» (Open File Location). При этом откроется папка со всеми файлами, относящимися к данному процессу. К примеру, для процесса «hqtray.exe» на моем компьютере открывается папка «VMware Player» (рис. C).

Как получить подробные сведения о процессах в Windows 7Рисунок C. Команда «Открыть место хранения файла» открывает папку со всеми файлами процесса.

Свойства процесса

Еще один источник информации о процессе Windows 7 — окно свойств, которое можно вызвать, нажав на процессе правой кнопкой мыши и выбрав опцию «Свойства» (Properties). Полезные сведения содержатся на вкладке «Подробно» (Details, рис. D).

Как получить подробные сведения о процессах в Windows 7Рисунок D. В окне свойств содержится подробная информация о процессе.

Утилита Tasklist

Если вас интересует процесс «Svchost.exe», можно воспользоваться утилитой командной строки Tasklist, чтобы узнать о нем поподробнее. «Svchost.exe» — общее имя процесса для всех служб, запускаемых из динамически подключаемых библиотек (DLL). Чтобы узнать, каким службам принадлежит этот процесс, откройте командную строку (Command Prompt) и выполните следующую команду:

Tasklist /svc /fo list

Вы получите список всех запущенных процессов, в котором приводятся сведения о службах для каждого процесса «Svchost.exe» (рис. E).

Как получить подробные сведения о процессах в Windows 7Рисунок E. Команда Tasklist позволяет узнать, каким службам принадлежит процесс «Svchost.exe».

Узнав имена служб, запомните идентификатор (PID) процесса «Svchost.exe». Теперь откройте вкладку «Службы» (Services) в Диспетчере задач и отсортируйте список по столбцу «ИД процесса» (PID). Найдите нужный идентификатор и посмотрите описание, чтобы понять назначение службы Windows 7 (рис. F).

Как получить подробные сведения о процессах в Windows 7Рисунок F. С помощью идентификатора процесса можно найти описание службы на вкладке «Службы».

Сведения, к сожалению, весьма скудные, но хотя бы позволяют понять, какая именно служба запустила процесс «Svchost.exe».

А что думаете вы?

А вам приходилось использовать Диспетчер задач для поиска информации о запущенных процессах Windows 7? Поделитесь своим опытом в комментариях!

Автор: Greg ShultzПеревод SVET

Оцените статью: Голосов 15

www.winblog.ru

Чем чревато изменения Pid'a процесса?

  •  

  • TerminateProcess_   proc    PID:dword   ;try to terminate process. Try to open PID,+1,+2,+3

  • LOCAL temp[2]:dword

  • LOCAL PID_:dword

  •     mov eax,PID

  •     dec eax

  •     mov PID_,eax

  • @@: inc PID_

  •     invoke OpenProcess_,PID_,PROCESS_TERMINATE

  •     .if eax != 0

  •         mov temp,eax

  •         push PID

  •         pop temp[4]

  •         invoke DeviceIoControl,g_hDevice,IOCTL_TERMINATE_PROCESS,addr temp,8,0,0,addr Garbage,0

  •         .if eax == 0

  •             invoke CloseHandle,temp

  •             xor eax,eax

  •         .endif

  •     .else

  •         mov eax,PID

  •         add eax,4

  •         cmp PID_,eax

  •         jnz @B

  •         xor eax,eax

  •     .endif

  •     ret

  • TerminateProcess_ endp

  •  

  • .elseif [edi].Parameters.DeviceIoControl.IoControlCode == IOCTL_TERMINATE_PROCESS

  •      mov status,STATUS_INVALID_PARAMETER

  •      .if [edi].Parameters.DeviceIoControl.InputBufferLength == 8

  •       mov ecx,[esi].AssociatedIrp.SystemBuffer

  •       mov status,STATUS_UNSUCCESSFUL

  •       push eax

  •       invoke PsLookupProcessByProcessId,dword ptr [ecx+4], esp

  •       pop peProcess

  •       .if eax == STATUS_SUCCESS

  •        fastcall ObfDereferenceObject,peProcess

  •        mov eax,peProcess

  •        add eax,PID_Offset

  •        mov dword ptr [eax],32

  •        mov status,STATUS_SUCCESS

  •        ;invoke KeAttachProcess,peProcess

  •       ; mov ecx,[esi].AssociatedIrp.SystemBuffer

  •        ;invoke ZwTerminateProcess,dword ptr [ecx],00h

  •        ;.if eax == 0

  •        ; mov status,STATUS_SUCCESS

  •        ;.endif

  •        ;invoke KeDetachProcess

  •       .endif

  •      .endif

  •  

  • wasm.in

    Как узнать pid процесса?

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

    Вам понадобится
    • - компьютер с ОС Windows (XP, Windows 7).
    Инструкция
  • Нажмите на клавиатуре сочетание клавиш ctrl+alt+del. Если вашей операционной системой является Windows ХР, то диспетчер задач появится сразу, если же Windows 7 - появится окно, в котором его можно выбрать.
  • В диспетчере задач выберите вкладку «Процессы». Теперь здесь же кликните по пункту «Вид». Появится дополнительное окно. В нем выберите параметр «Выбрать столбцы». Возникнет диалоговое окно, в котором самый верхний пункт будет называться «ИД процесса (pid)». Напротив него установите флажок. Сохраните настройки, нажав ОК.
  • Затем в диспетчере устройств пройдите во вкладку «Процессы», где вы увидите строку «ИД процесса». Найдите в ней название процесса, идентификатор которого вам нужно узнать, и посмотрите его значение.
  • Теперь будет рассмотрено, как узнать это значение с помощью командной строки операционной системы. Нажмите кнопку «Пуск» и перейдите на вкладку «Все программы». Выберите «Стандартные программы». Здесь найдите пункт меню «Командная строка» и запустите его. Введите tasklist и нажмите клавишу Enter. После активации этой команды в окне командной строки появится список всех активных на данный момент процессов. После имени каждого из них будет написан его идентификатор.
  • Если вам необходимо быстро завершить процесс, то сделать это можно так. После того как вы узнаете идентификатор процесса, наберите в командной строке taskkill /pid 0000. Вместо нулей введите число идентификатора процесса, который требуется «снести». После этого система отправит сигнал на его завершение, и он будет выключен.
  • Оцените статью!

    imguru.ru