- Linux ps дата запуска процесса
- Наши партнеры
- Как узнать, как долго длится процесс в Linux
- Узнать, как долго длится процесс в Linux
- Работа с процессами в Linux
- Список процессов
- Работа с процессами в Linux
- Как использовать команду ps
- Пользовательский формат
- Выбор конкретных процессов
- Форматирование вывода команды ps
Linux ps дата запуска процесса
Наши партнеры
Библиотека сайта rus-linux.net
НАЗВАНИЕ
ps — выдача информации о состоянии процессов
ОПИСАНИЕ
Команда ps выдает информацию об активных процессах. По умолчанию информация дается только о процессах, ассоциированных с данным терминалом. Выводятся идентификатор процесса, идентификатор терминала, истраченное к данному моменту время ЦП и имя команды. Если нужна иная информация, следует пользоваться опциями.
Некоторые опции имеют один аргумент или список аргументов. Аргументы в списке могут быть либо отделены друг от друга запятыми, либо все вместе заключены в двойные кавычки и отделены пробелами или запятыми. Аргументы в списке_процессов и в списке_групп должны быть числами.
Командой ps обрабатываются следующие опции: -e Вывести информацию обо всех процессах.
-d Вывести информацию обо всех процессах, кроме лидеров групп.
-a Вывести информацию обо всех наиболее часто запрашиваемых процессах, то есть обо всех процессах, кроме лидеров групп и процессов, не ассоциированных с терминалом.
-f Генерировать полный листинг (см. ниже разъяснение смысла колонок).
-l Генерировать листинг в длинном формате (см. ниже).
-n файл_с_системой Считать, что операционная система загружена из файла_с_системой, а не из файла /unix.
-t список_терминалов Выдавать информацию только о процессах, ассоциированных с терминалами из заданного списка_терминалов. Терминал — это либо имя файла-устройства, например ttyномер или console, либо просто номер, если имя файла начинается с tty.
-p список_идентификаторов_процессов Выдавать информацию только об указанных процессах.
-u список_идентификаторов_пользователей Выдавать информацию только о процессах с заданными идентификаторами или входными именами пользователей. Идентификатор пользователя выводится в числовом виде, а при наличии опции -f — в символьном.
-g список_идентификаторов_лидеров_групп Выводить информацию только о процессах, для которых указаны идентификаторы лидеров групп. Лидер группы — это процесс, номер которого идентичен его идентификатору группы. Shell, запускаемый при входе в систему, является стандартным примером лидера группы процессов.
При указании опции -f ps пытается определить имя команды и аргументы, с которыми был создан процесс, исследуя пользовательский блок процесса. Если это не удается, имя процесса выводится так же, как и при отсутствии опции -f, только заключается в квадратные скобки.
Ниже приводятся заголовки колонок выдачи и поясняется смысл их содержимого. Буквы l или f в скобках означают, что эта колонка появляется соответственно при длинном или полном формате выдачи; отсутствие букв означает, что данная колонка выводится всегда. Отметим, что опции -l и -f влияют только на формат выдачи, но не на список процессов, информация о которых будет предоставлена.
F (l) | Флаги (шестнадцатеричные), логическая сумма которых дает следующие сведения о процессе: | |
---|---|---|
00 | Процесс терминирован; элемент таблицы процессов свободен. | |
01 | Системный процесс: всегда в основной памяти. | |
02 | Процесс трассируется родительским процессом. | |
04 | Родительский трассировочный сигнал остановил процесс; родительский процесс ждет. | |
08 | Процесс не может быть разбужен сигналом. | |
10 | Процесс в основной памяти. | |
20 | Процесс в основной памяти; блокирован до завершения события. | |
40 | Идет сигнал к удаленной системе. | |
80 | Процесс в очереди на ввод/вывод. | |
S (l) | Статус процесса: | |
O | Активный: обрабатывается процессором. | |
S | Спящий: ожидает завершения события. | |
R | Готов: стоит в очереди на выполнение. | |
I | Рождающийся: процесс создается. | |
Z | Состояние «зомби»: процесс завершен, но родительский процесс не ждет этого. | |
T | Трассируемый: процесс остановлен сигналом, так как родительский процесс трассирует его. | |
X | Растущий: процесс ожидает получения большего объема основной памяти. | |
UID (f,l) | Идентификатор владельца процесса; при указании опции -f выдается входное имя пользователя. | |
PID | Идентификатор процесса (необходим для терминирования процесса). | |
PPID(f,l) | Идентификатор родительского процесса. | |
C (f,l) | Доля выделенного планировщиком времени ЦП. | |
STIME (f) | Время запуска процесса (часы:минуты:секунды). Если процесс запущен более чем 24 часа назад, выдается месяц и день запуска. | |
PRI (l) | Приоритет процесса; большее число означает меньший приоритет. | |
NI (l) | Поправка к приоритету. | |
ADDR (l) | Адрес процесса в памяти. | |
SZ (l) | Размер (в блоках по 512 байт) образа процесса в памяти. | |
WCHAN (l) | Адрес события, которого ожидает процесс. У активного процесса эта колонка пуста. | |
TTY | Управляющий терминал (обычно — терминал, с которого был запущен процесс; см. ниже СЮРПРИЗЫ). Если такового нет, выдается символ ?. | |
TIME | Истраченное процессом время ЦП. | |
COMMAND | Имя программы; если указана опция -f, то выводится полное имя команды и ее аргументы. |
Процесс, закончивший выполнение своей программы, и имеющий родительский процесс, не дождавшийся еще завершения, в качестве имени программы получает .
СЮРПРИЗЫ
Во время выполнения команды ps положение вещей может измениться; таким образом, ps дает лишь хорошее приближение к действительности.
Некоторые сведения, относящиеся к процессам, отмеченным как , не соответствуют действительности.
Если не указана ни одна из опций -t, -p, -u, -g, команда ps проверяет стандартный ввод, стандартный вывод и стандартный протокол (в указанном порядке) для определения управляющего терминала и пытается вывести информацию о процессах, ассоциированных с этим терминалом. В ситуации, когда все три стандартных направления ввода/вывода переназначены, ps не может найти и выдать имя управляющего терминала.
Команда ps -ef может не отметить начало входа в систему, а вывести сведения о последнем запуске для данной терминальной линии.
Источник
Как узнать, как долго длится процесс в Linux
Вы когда-нибудь хотели узнать, как долго процесс запускается в вашем Linux-боксе?
Ну, ты на правильном пути.
Это краткое руководство поможет вам узнать время работы активного процесса.
Вам не нужны никакие приложения для мониторинга.
В Unix-подобных операционных системах существует команда ps, которая используется для отображения информации об активных процессах.
Используя команду ps, мы можем легко узнать, как долго работает процесс.
Узнать, как долго длится процесс в Linux
Команда ps имеет разные спецификаторы формата (ключевые слова), которые могут использоваться для управления выходным форматом.
Мы будем использовать следующие два ключевых слова, чтобы найти время работы активного процесса.
- etime – прошедшее время с момента запуска процесса в виде [[DD-] hh:] mm: ss.
- etimes – прошедшее время с момента запуска процесса в секундах.
Во-первых, вам нужно узнать PID процесса. Следующая команда отображает PID процесса dhcpcd.
Как видно из вышеприведенного вывода, 8299 является PID процесса dhcpcd.
Теперь мы можем узнать, как долго этот процесс выполнялся с помощью команды:
Вы также можете просмотреть прошедшее время в секундах, используя ключевое слово etimes.
Не только один процесс, мы также можем отображать время безотказной работы всех процессов с помощью команды:
Первая команда отображает время безотказной работы всех процессов Linux в формате [[DD-] hh:] mm: ss, а на последнем отображает время безотказной работы в секундах.
Вот пример вывода второй команды.
Как видно из вышесказанного, у нас есть время безотказной работы всех процессов с шестью столбцами.
Тут есть вот что:
- PID – идентификатор процесса
- COMMAND (второй столбец) – имя команды без параметров и / или аргументов.
- STARTED – абсолютное время начала процесса.
- ELAPSED – Истекшее время с момента запуска процесса в виде [[dd-] hh:] mm: ss.
- TIME – суммарное время процессора, “[dd-] hh: mm: ss” format.
- COMMAND (последний столбец) – имя команды со всеми ее опциями и аргументами.
Для получения дополнительной информации о команде ps проверьте страницы руководства.
И это все на данный момент. Теперь вы знаете, как узнать, как долго работает процесс в вашей Linux-системе. Надеюсь это поможет. Я скоро буду здесь с другим полезным руководством.
Источник
Работа с процессами в Linux
Список процессов
Вывести на экран список текущих процессов, запущенных пользователем, можно командой:
Чтобы посмотреть список всех процессов с дополнительной информацией, вводим:
Мы увидим, примерно, следующее:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 661 0.0 0.0 4072 8 tty1 Ss+ Jul03 0:00 /sbin/mingetty
root 662 0.0 0.0 4072 8 tty2 Ss+ Jul03 0:00 /sbin/mingetty
root 16355 0.0 0.0 171636 3308 pts/0 S 15:46 0:00 sudo su
root 16366 0.0 0.0 140896 1556 pts/0 S 15:46 0:00 su
root 16368 0.0 0.0 108316 1944 pts/0 S 15:46 0:00 bash
root 18830 0.0 0.0 110244 1172 pts/0 R+ 16:20 0:00 ps u
- USER — учетная запись пользователя, от которой запущен процесс.
- PID — идентификатор процесса.
- %CPU — потребление процессорного времени в процентном эквиваленте.
- %MEM — использование памяти в процентах.
- VSZ — Virtual Set Size. Виртуальный размер процесса (в килобайтах).
- RSS — Resident Set Size. Размер резидентного набора (количество 1K-страниц в памяти).
- TTY — терминал, из под которого был запущен процесс.
- STAT — текущее состояние процесса. Могут принимать значения:
- R — выполнимый процесс;
- S — спящий;
- D — в состоянии подкачки на диске;
- T — остановлен;
- Z — зомби.
- W — не имеет резидентных страниц;
- Дмитрий Моск — IT-специалист.
Настройка серверов, компьютерная помощь.
Как управлять процессами в операционной системе Linux
Источник
Работа с процессами в Linux
Команда ps выводит список текущих процессов на вашем сервере. Используется обычно в сочетании с командой grep и more или less.
Примечание: more и less – дополнительные команды, которые помогают фильтровать и разбивать на страницы выходные данные ps, так как они часто бывают довольно длинными.
Как использовать команду ps
Общий синтаксис команды ps выглядит следующим образом:
По историческим причинам и из соображений совместимости команда ps принимает несколько различных типов параметров:
- Опции стиля UNIX, перед которыми стоит одна черточка.
- Варианты стиля BSD, используемые без тире.
- Длинные опции GNU, начинающиеся с двух тире.
Все типы опций могут быть смешанными, но в некоторых особых случаях могут возникать конфликты, поэтому лучше придерживаться одного типа опций. Опции BSD и UNIX могут быть сгруппированы.
В простейшей форме, когда используется без какой-либо опции, ps будет напечатано четыре столбца информации для минимум двух процессов, запущенных в текущей оболочке, самой оболочки и процессов, которые выполняются в оболочке при выполнении команды.
Вывод включает в себя информацию о shell (bash) и процессе, запущенном в этой оболочке (введенная вами команда ps):
PID TTY TIME CMD 1809 pts/0 00:00:00 bash 2043 pts/0 00:00:00 ps
Четыре колонки помечены PID, TTY, TIMEи CMD.
- PID- Идентификатор процесса. В большинстве случаев при запуске psкоманды наиболее важной информацией, которую ищет пользователь, является идентификатор процесса. Знание PID позволяет убить сбойный процесс.
- TTY – Название управляющего терминала для процесса.
- TIME – Совокупное время ЦП процесса, показанное в минутах и секундах.
- CMD – Имя команды, которая использовалась для запуска процесса.
Вывод выше не очень полезен, так как он не содержит много информации. Настоящая сила команды ps появляется при запуске с дополнительными опциями.
Команда ps принимает огромное количество опций, которые можно использовать для отображения определенной группы процессов и различной информации о процессе, но для повседневного использования требуется лишь несколько из них.
Команда ps чаще всего используется со следующей комбинацией параметров:
- Опция a указывает ps вывести на дисплей процессы всех пользователей, за исключением тех процессов, которые не связаны с терминалом и процессами группы лидеров.
- В u – подставки для ориентированных на пользователя формате, который обеспечивает подробную информацию о процессах.
- Опция x в ps перечисляет процессы без управляющего терминала. В основном это процессы, которые запускаются во время загрузки и работают в фоновом режиме.
Команда будет отображать информацию в одиннадцати столбцах USER, PID, %CPU, %MEM, VSZ, RSS, STAT, START, TTY, TIMEи CMD.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd] …
Мы уже объяснили метки PID, TTY, TIMEи CMD. Вот объяснение других меток:
- USER – Пользователь, который запускает процесс.
- %CPU- Процесс использования процессора .
- %MEM – Процент резидентного установленного размера процесса к физической памяти на машине.
- VSZ – Размер виртуальной памяти процесса в KiB.
- RSS- Размер физической памяти , используемой процессом.
- STAT- Код состояния процесса, который может быть Z (zombie), S (sleeping), R (running) .. и т. д.
- START – время, когда команда началась.
Чтобы напечатать дерево процессов, добавьте опцию f. Это укажет ps отобразить древовидное представление дочерних процессов.
Команда ps также позволяет вам сортировать вывод. Например, чтобы отсортировать вывод на основе использования памяти, вы бы использовали:
- Опция e указывает ps отобразить все процессы.
- f – полноформатный список, который содержит подробную информацию о процессах.
Команда будет отображать информацию в столбцах UID, PID, PPID, C, STIME, TIME и CMD.
UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:47 ? 00:00:01 /sbin/init root 2 0 0 19:47 ? 00:00:00 [kthreadd] …
Метки, которые еще не объяснены, имеют следующее значение:
- UID – То же USER, что и пользователь, который запускает процесс.
- PPID – Идентификатор родительского процесса.
- C- То же %CPU, что процесс загрузки процессора.
- STIME- То же START, что и время начала команды.
Чтобы увидеть только процессы, запущенные от имени определенного пользователя, используйте следующую команду, где andreyex указано имя пользователя:
ps -f -U andreyex -u andreyex
Пользовательский формат
Опция o позволяет указать, какие столбцы будут отображаться при выполнении команды ps.
Например, чтобы напечатать информацию только о PID и COMMAND вы бы выполнить одну из следующих команд:
ps -efo pid,commconsole-bash ps auxo pid,comm
## Использование команды ps может использоваться в сочетании с другими командами через трубопровод. Если вы хотите отобразить вывод команды ‘ps’, по одной странице за раз передайте его в команде less:
console-bash ps -ef | less
Выходные данные команды ‘ps’ могут быть отфильтрованы с помощью grep, например, чтобы показать только процесс, принадлежащий пользователю root, вы должны запустить:
console-bash ps -ef | grep root “ `
Выбор конкретных процессов
Вы можете вывести определенные процессы с помощью ps с помощью различных критериев выбора.
Например, если вы знаете идентификатор процесса PID, вы можете просто использовать следующую команду:
Вы можете выбрать несколько процессов, указав несколько идентификаторов процесса следующим образом:
ps -p “22813 28599”
Вы также можете указать их с помощью списка, разделенного запятыми:
ps -p 22813,28599
Скорее всего, вы не будете знать идентификатор процесса, и его легче искать по команде. Для этого используйте следующую команду:
Другие способы фильтрации результатов – по группам. Вы можете искать по имени группы, используя следующий синтаксис:
Например, чтобы узнать все процессы, выполняемые группой accounts, выполните следующие действия:
ps -G “accounts”
ps –Group “accounts”
Вы также можете выполнять поиск по идентификатору группы GID вместо имени группы с помощью строчной буквы g следующим образом:
Если вы хотите найти все процессы, выполняемые конкретным пользователем, выполните следующую команду, указав имя пользователя:
Обратите внимание, что это показывает человека, чьи учетные данные используются для запуска команды. Например, если вы вошли в систему как gary и запустите указанную выше команду, она покажет всю команду, которую вы выполняете. Если вы входите в систему как tom и используете sudo для запуска команды, то приведенная выше команда покажет команду tоm’а, которую запускает gary, а не tom.
Чтобы ограничить список только процессами, действительно запущенными gary, используйте следующую команду:
Форматирование вывода команды ps
По умолчанию вы получаете четыре столбца, когда используете команду ps: PID, TTY, Time, Command. О них написано в начале статьи.
Вы можете получить полный список, выполнив следующую команду:
Опция -e, показывает все процессы, а -f показывает полную информацию: UID – идентификатор пользователя выполняющего команду, PID – это идентификатор процесса команды, PPID – идентификатор родительского процесса, который отпустил команду, C – количество дочерних процессов, STIME – это время начала процесса, TTY, TIME, CMD.
Вы можете получить еще больше информационных столбцов, используя следующую команду:
Дополнительные столбцы – SZ, RSS и PSR. SZ – это размер процесса, RSS – реальный размер памяти, а PSR – процессор, которому назначена команда.
Вы можете указать пользовательский формат, используя следующий формат:
Источник