Инструменты пользователя

Инструменты сайта


linux:overall:process

Это старая версия документа!


Процессы

Утилита strace

Позволяет выполнить трассировку системных вызовов.

Утилита ps

Утилита для просмотра списка процессов.

  -p - фильтр по PID (так же есть вариации p -p -q ppid)
  -aux - обычный вариант
  -eo - форматирование вывода
 
 
ps -p 123
ps -p `cat proc.pid`
ps -p `cat proc.pid` -eo "%p"
ps aux | grep -E 'app1|app2'
</bash>
 
 
 
<details>
<summary>:!: Доп </summary>
Каждый процесс в системе может быть в одном из нескольких состояний:\\
**Запуск** - работает либо готов к работе; **Ожидание** - ожидают какого либо события или ресурсов; **Остановлено** - остановлены с помощью сигнала; **Зомби ** - уже не выполняются, но есть запись о них из-за дочерних процессов\\
 
=== Аргументы ===
  * **-A(a), -e** - все процессы (все кроме фоновых).
  * **-N** - все кроме указанных.
  * **-C (-G)** - выбрать по имени (по ИД группы).
  * **-p (--ppid)** - выбрать по pid (pid родительского процесса).
  * **-u** - процессы пользователя.
  * **-t** - выбрать по tty.
 
=== Форматирование ===
  * **-f** - максимум информации. 
      * **UID** - пользователь, от имени которого запущен процесс;
      * **PID** (PPID) - идентификатор (родительского) процесса;
      * **C** - процент времени CPU, используемого процессом;
      * **STIME** - время запуска процесса;
      * **TTY** - терминал, из которого запущен процесс;
      * **TIME** - общее время процессора, затраченное на выполнение процессора;
      * **CMD** - команда запуска процессора;
      * **LWP** - показывает потоки процессора;
      * **PRI** - приоритет процесса.
  * **-F** - добавляет еще несколько полей.
      * **SZ (RSS)** - это размер (реальный) процесса в памяти;
      * **PSR** - ядро процессора, на котором выполняется процесс.
  * **-l** - так же, добавляет поля
      * **F** - флаги, ассоциированные с этим процессом;
      * **S** - состояние процесса;
      * **PRI** - приоритет процесса в планировщике ядра Linux;
      * **NI** - рекомендованный приоритет процесса, можно менять;
      * **ADDR** - адрес процесса в памяти;
      * **WCHAN** - название функции ядра, из-за которой процесс находится в режиме ожидания.
  * **-j** - минимум информации.
  * **-k, --sort** - сортировка по указанному столбцу.
  * **-L, -m** - отображать потоки в колонках (после процесса).
  * **-H** - дерево процессов.
</details>
 
 
 
====== lsof ======
**LiSts all Open Files** файлы, открытые процессами, так же и процессы открытые файлами. Очень расширенный функционал, множество параметров\\
  * **-u (-U)** - открытые конкретным пользователем (сокетом Unix)
  * **-p** - открытые процессом
  * **-d** - какие файлы и папки открыты в указанной директории
  * **-c** - открытые процессами выполняющие команды имена которых указаны в параметре
  * **-t** - вывод только PID процессов работающих с указанным файлом
 
 
 
====== Общее ======
<details>
<summary>:!: Примеры </summary>
:!: Найти и завершить перечень процессов, по имени команды
<code bash>
ps -ef | pkill -f my_prog
 
 

</details>

linux/overall/process.1702880443.txt.gz · Последнее изменение: 2023/12/18 06:20 — admin