PS(1) General Commands Manual PS(1)

# НАЗВА

ps — надає звіт щодо поточних процесів.

# КОРОТКИЙ ОПИС

**ps** \[*параметр* ...]

# ОПИС

**ps** показує відомості щодо вибраного набору активних процесів. Якщо вам потрібне регулярне оновлення вибору та показаних даних, скористайтеся замість цієї програми програмою **top**.

Ця версія **ps** приймає декілька типів параметрів.

•

Параметри UNIX, які може бути згруповано і яким має перебувати дефіс.

•

Параметри BSD, які може бути згруповано і які не слід використовувати з дефісом.

•

Довгі версії параметрів GNU, перед якими слід вказати два дефіси.

Параметри різних типів можна поєднувати довільним чином, але можуть виникнути конфлікти. Існує декілька параметрів однакового призначення, які є функціонально ідентичним. Причиною є одночасна наявність багатьох стандартів і реалізацій **ps**, з якими є сумісною ця версія **ps**.

Типово, **ps** вибирає усі процеси із тим самим ідентифікатором ефективного користувача (euid=EUID), що і у поточного користувача, а також ті процеси, які пов'язано із тим самим терміналом, звідки викликано програму. Програма виводить ідентифікатор процесу (pid=PID), термінал, який пов'язано із процесом (tname=TTY), накопичений час процесора у форматі \[ДД-]гг:хх:сс (time=TIME) та назву виконуваного файла (ucmd=CMD). Типово, виведені дані не упорядковуються.

Використання параметрів у стилі BSD додасть стан процесу (stat=STAT) до типового набору для показу і показ аргументів команди (args=COMMAND) замість назви виконуваного файла. Ви можете перевизначити це за допомогою змінної середовища **PS\_FORMAT**. Використання параметрів у стилі BSD також змінить вибір процесів — буде включено процеси з інших терміналів (TTY), власником яких ви є; крім того, це може бути описано як встановлення набору усіх процесів, які фільтровано для виключення процесів, власником яких є інші користувачі або не у терміналі. Ці ефекти не буде взято до уваги для параметрів, які описано нижче як «тотожні», отже, **-M** вважатиметься тотожним до **Z** тощо.

Окрім вказаних нижче випадків, параметри вибору процесів є адитивними. Типовий вибір буде відкинуто, а потім вибрані процеси буде додано до набору процесів, які слід показати. Таким чином, процес буде показано, якщо він буде відповідати усім заданим критеріям.

# ПРИКЛАДИ

Перегляд усіх процесів системи з використанням стандартного синтаксису:

**ps -e**  
**ps -ef**  
**ps -eF**  
**ps -ely**

Перегляд усіх процесів системи з використанням синтаксису BSD:

**ps ax**  
**ps axu**

Виведення ієрархії процесів:

**ps -ejH**  
**ps axjf**

Отримання відомостей щодо потоків обробки:

**ps -eLf**  
**ps axms**

Отримання відомостей щодо захисту:

**ps -eo euser,ruser,suser,fuser,f,comm,label**  
**ps axZ**  
**ps -eM**

Перегляд усіх процесів, які запущено від імені користувача root (справжній і ефективний ідентифікатор) у форматі користувача:

**ps -U root -u root u**

Перегляд усіх процесів із визначеним користувачем форматом:

**ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm**  
**ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm**  
**ps -Ao pid,tt,user,fname,tmout,f,wchan**

Виведення лише ідентифікаторів процесів syslogd:

**ps -C syslogd -o pid=**

вивести лише назву PID 42:

**ps -q 42 -o comm=**

# ПРОСТИЙ ВИБІР ПРОЦЕСУ

[**a**](#a)

Використати обмеження «лише себе» у стилі BSD, яке буде накладено на набір усіх процесів, якщо використано якісь параметри у стилі BSD (без «-») або якщо особу користувача **ps** встановлено у стилі BSD. Набір процесів, який вибрано у цей спосіб, додається до набору процесів, які вибрано в інший спосіб. Альтернативним описом є те, що цей параметр наказує **ps** вивести список усіх процесів з терміналом (tty) або вивести список усіх процесів, якщо використано разом із параметром **x**.

[**-A**](#A)

Вибрати усі процеси. Те саме, що і **-e**.

[**-a**](#a~2)

Вибрати усі процеси, окрім обох лідерів сеансів (див. [*getsid*(2)](/man/os/procps/getsid.2)) і процеси, які не пов'язано із терміналом.

[**-d**](#d)

Вибрати усі процеси, окрім лідерів сеансів.

[**--deselect**](#deselect)

Вибрати усі процеси, окрім тих, які задовольняють вказані умови (інвертує вибір). Те саме, що і **-N**.

[**-e**](#e)

Вибрати усі процеси. Те саме, що і **-A**.

[**g**](#g)

Справді всі, навіть лідери сеансу. Цей прапорець є застарілим, і його може бути вилучено у майбутніх випусках. Зазвичай, неявно встановлюється прапорцем **a**, і корисний лише для роботи із особами sunos4.

[**-N**](#N)

Вибрати усі процеси, окрім тих, які задовольняють вказані умови (інвертує вибір). Те саме, що і **--deselect**.

[**T**](#T)

Вибрати усі процеси, які пов'язано із цим терміналом. Те саме, що і параметр **t** без будь-яких аргументів.

[**r**](#r)

Обмежити вибір лише процесами, які працюють.

[**x**](#x)

Використати обмеження «повинен мати термінал» у стилі BSD, яке буде накладено на набір усіх процесів, якщо використано якісь параметри у стилі BSD (без «-») або якщо особу користувача **ps** встановлено у стилі BSD. Набір процесів, який вибрано у цей спосіб, додається до набору процесів, які вибрано в інший спосіб. Альтернативним описом є те, що цей параметр наказує **ps** вивести список усіх процесів, власником яких є ви (той самий EUID, що і для **ps**) або вивести список усіх процесів, якщо використано разом із параметром **a**.

# ВИБІР ПРОЦЕСУ ЗА СПИСКОМ

Ці параметри приймають один аргумент у формі списку відокремлених пробілами або комами значень. Можна використовувати декілька разів в одній команді. Приклад: **ps -p "1 2" -p 3,4**

*123*

Те саме, що і **--pid 123**.

+*123*

Те саме, що і **--sid 123**.

-*123*

Вибрати ідентифікатор групи процесів (PGID).

[**-C список\_команд**](#C)

Вибрати за назвою команди. Вибирає процеси, назвою виконуваного файла у яких є назва, задана аргументом *список\_команд*. Зауваження: назва команди не є тим самим, що рядок команди. У попередніх версіях procps і ядро обрізали цю назву команди до 15 символів. Це обмеження знято у нових версіях. Якщо ваш код залежить від обмеження у 15 символів, він може не спрацювати.

[**-G список\_груп**](#G)

Вибрати за ідентифікатором справжньої групи (RGID) або назвою. Вибирає процеси, назва або ідентифікатор справжньої групи яких є у списку *список\_груп*. Ідентифікатор справжньої групи визначає групу користувача, який створив процес, див. [*getgid*(2)](/man/os/procps/getgid.2).

[**-g grplist**](#g~2)

Вибрати за сеансом АБО за назвою ефективної групи. Вибір за сеансом визначається багатьма стандартами, але вибір за ефективною групою є логічною поведінкою, яку використано у декількох інших операційних системах. Ця версія **ps** вибиратиме за сеансом, якщо список є повністю числовим (як сеанси). Числові ідентифікатори груп працюватимуть, лише якщо також вказано деякі назви груп. Див. параметри **-s** і **--group**.

[**--Group grplist**](#Group)

Вибрати за ідентифікатором справжньої групи (RGID) або назвою. Те саме, що і **-G**.

[**--group grplist**](#group)

Вибрати за ідентифікатором ефективної групи (EGID) або назвою. Вибирає процеси, чиї назви або ідентифікатори ефективних груп є у *список\_груп*. Ідентифікатор ефективної групи описує групу, чиї права доступу до файлів використано процесом (див. [*getegid*(2)](/man/os/procps/getegid.2)). Параметр **-g** часто є альтернативою **--group**.

[**p список\_pid**](#p)

Вибрати за ідентифікатором процесу. Те саме, що і **-p** та **--pid**.

[**-p список\_pid**](#p~2)

Вибрати за PID. Вибирає процеси, номери ідентифікаторів процесу яких з'являються у *pidlist*. Те саме, що і **p** та **--pid**.

[**--pid список\_pid**](#pid)

Вибрати за ідентифікатором процесу. Те саме, що і **-p** та **p**.

[**--ppid список\_pid**](#ppid)

Вибрати за ідентифікатором батьківського процесу. Вибирає процеси із ідентифікатором батьківського процесу зі списку *список\_pid*. Таким чином, програма вибирає процеси, які є дочірніми щодо процесів зі списку *список\_pid*.

[**q список\_pid**](#q)

Вибрати за ідентифікатором процесу (швидкий режим). Те саме, що і **-q** та **--quick-pid**.

[**-q список\_pid**](#q~2)

Вибрати за PID (швидкий режим). Вибирає процеси, чиї числові ідентифікатори процесу є у списку *список\_pid*. Якщо вказано цей параметр, **ps** прочитає потрібні дані лише для pid зі списку *список\_pid* і не застосовуватиме додаткових правил фільтрування. Порядок pid без сортування зберігатиметься. У цьому режимі не передбачено додаткових параметрів вибору, упорядковування та списки типу «ліс». Те саме, що **q** і **--quick-pid**.

[**--quick-pid список\_pid**](#quick)

Вибрати за ідентифікатором процесу (швидкий режим). Те саме, що і **-q** та **q**.

[**-s sesslist**](#s)

Вибрати за ідентифікатором сеансу. Вибирає процеси із ідентифікатором сеансу, вказаним у *sesslist*.

[**--sid sesslist**](#sid)

Вибрати за ідентифікатором сеансу. Те саме, що і **-s**.

[**t список\_терміналів**](#t)

Вибрати за терміналом. Майже те саме, що і **-t** та **--tty**, але можна використовувати із порожнім значенням *список\_терміналів*, щоб вказати на термінал, який пов'язано із **ps**. Використання параметра **T** вважається пріоритетнішим варіантом за використання **t** із порожнім значенням *список\_терміналів*.

[**-t список\_терміналів**](#t~2)

Вибрати за терміналом. Вибирає процеси, пов'язані із терміналами, які задано списком *список\_терміналів*. Термінали (tty або екрани для текстового виведення) можна вказати у декількох формах: /dev/ttyS1, ttyS1, S1. Можна скористатися простим «-» для вибору процесів, які не пов'язано із будь-яким терміналом.

[**--tty ttylist**](#tty)

Вибрати за терміналом. Те саме, що і **-t** та **t**.

[**U список\_користувачів**](#U)

Вибрати за ідентифікатором ефективного користувача (EUID) або назвою. Вибирає процеси, чиї імена або ідентифікатори ефективних користувачів є у *список\_користувачів*. Ідентифікатор ефективного користувача описує користувача, чиї права доступу до файлів використано процесом (див. [*geteuid*(2)](/man/os/procps/geteuid.2)). Параметр **-u** часто є альтернативою **--user**.

[**-U список\_користувачів**](#U~2)

Вибрати за ідентифікатором справжнього користувача (RUID) або назвою. Вибирає процеси, назва або ідентифікатор справжнього користувача яких є у списку *список\_користувачів*. Ідентифікатор справжнього користувача визначає користувача, який створив процес, див. [*getuid*(2)](/man/os/procps/getuid.2).

[**-u список\_користувачів**](#u)

Вибрати за ідентифікатором ефективного користувача (EUID) або назвою. Вибирає процеси, чия назва ефективного користувача або ідентифікатор перебуває у списку *список\_користувачів*.

Ідентифікатор ефективного користувача описує користувача, чиї права доступу до файлів використано процесом (див. [*geteuid*(2)](/man/os/procps/geteuid.2)). Параметр **U** часто є альтернативою **--user**.

[**--User список\_користувачів**](#User)

Вибрати ідентифікатор або ім'я справжнього користувача (RUID). Тотожний до **-U**.

[**--user список користувачів**](#user)

Вибрати за ідентифікатором або іменем ефективного користувача (EUID). Те саме, що **-u** і **U**.

# КЕРУВАННЯ ФОРМАТОМ ВИВЕДЕННЯ

Ці параметри використовують для вибору даних, які буде показано **ps**. Виведений результат може бути різним для різних користувачів. Параметри в дужках в кінці опису є еквівалентами форматування.

[**-c**](#c)

Показати різні дані планувальника для параметра **-l**. (**-O cls,pri**).

[**--context**](#context)

Показати формат контексту захисту (для SELinux). (**-o pid,context,cmd**).

[**-f**](#f)

Виконати повноформатне виведення списку. Цей параметр можна поєднувати із багатьма іншими параметрами у стилі UNIX для додавання додаткових стовпчиків. Його використання також призводить до виведення аргументів команди. Якщо використано разом із **-L**, буде додано стовпчики NLWP (кількості потоків обробки) та LWP (ідентифікатора потоку обробки). Див. параметр **c**, ключове слово форматування **args** та ключове слово форматування **comm**. (**-o uid,pid,ppid,c,stime,tty,time,cmd**).

[**-F**](#F)

Надповний формат. Див. параметр **-f**, використання якого неявним чином вмикає **-F**. (**-o uid,pid,ppid,c,sz,rss,psr,stime,tty,time,cmd**).

[**--format формат**](#format)

Визначений користувачем формат. Тотожній до **-o** і **o**.

[**j**](#j)

Формат керування завданнями BSD. (**-o ppid,pid,pgid,sid,tty,tpgid,stat,uid,time,cmd a**)

[**-j**](#j~2)

Формат завдання. (**-o pid,pgid,sid,tty,time,ucmd**)

[**l**](#l)

Показати у довгому форматі BSD. (**-o f,uid,pid,ppid,pri,ni,vsz,rss,wchan,stat,tty,time,cmd a**)

[**-l**](#l~2)

Довгий формат. Разом із цим параметром часто корисним є параметр **-y**. (**-o f,uid,pid,ppid,c,pri,ni,addr,sz,wchan,tty,time,ucmd**)

[**-M**](#M)

Додати стовпчик даних щодо захисту. Те саме, що і **Z** (для SELinux). (**-o context,pid,tty,time,ucmd**)

[**O формат**](#O)

Є попередньо завантаженим **o** (перезавантаженим). Параметр **O** BSD може працювати як **-O** (визначений користувачем формат виведення з деякими попередньо визначеними типовими полями) або бути використаним для визначення упорядкування. Для визначення поведінки цього параметра буде використано евристику. Для забезпечення бажаної поведінки (упорядкування або форматування) вкажіть параметр у якийсь інший спосіб (наприклад, з **-O** або **--sort**). Якщо використано як параметр форматування, є ідентичним до **-O** із особливостями BSD.

[**-O формат**](#O~2)

Подібний до **-o**, але із попереднім завантаженням деяких типових стовпчиків. Ідентичний до **-o pid,формат,state,tname,time,command** або **-o pid,формат,tname,time,cmd**, див. **-o** нижче.

[**o формат**](#o)

Вказати визначений користувачем формат. Те саме, що і **-o** і **--format**.

[**-o формат**](#o~2)

Визначений користувачем формат. Значення *формат* є єдиним аргументом у формі списку відокремлених пробілами або комами значень, за його допомогою можна вказати окремі стовпчики виведення даних. Визначені ключові слова описано у розділі **СТАНДАРТНІ СПЕЦИФІКАТОРИ ФОРМАТІВ** нижче. Заголовки, якщо потрібно, може бути перейменовано (**ps -o pid,ruser=RealUser -o comm=Command**). Якщо усі заголовки стовпчиків порожні (**ps -o pid= -o comm=**), рядок заголовків не буде виведено. Для широких заголовків буде збільшено ширину стовпчика; цим можна скористатися для збільшення ширити стовпчиків, подібних до WCHAN (**ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm**). Також можна скористатися явним визначенням ширини (**ps opid,wchan:42,cmd**). Поведінка **ps -o pid=X,comm=Y** є різною у різних системах; дані може бути виведено в один стовпчик із назвою «X,comm=Y» або у два стовпчики із назвами «X» та «Y». Скористайтеся декількома параметрами **-o**, якщо не певні щодо результатів. Скористайтеся змінною середовища **PS\_FORMAT** для визначення бажаного типового варіанта; DefSysV і DefBSD є макросами, якими можна скористатися для вибору типових стовпчиків UNIX або BSD.

[**-P**](#P)

Додати стовпчик із для показу **psr**. (**-o pid,psr,s,tty,time,ucmd**)

[**s**](#s~2)

Показати у форматі сигналу. (**-o uid,pid,pending,blocked,ignored,caught,stat,tty,bsdtime,cmd a**)

[**u**](#u~2)

Показати у зорієнтованому на користувача форматі. (**-o user,pid,pcpu,pmem,vsz,rss,tty,stat,start\_time,bsdtime,args a**)

[**v**](#v)

Показати у форматі віртуальної пам'яті. (**-o pid,tty,stat,bsdtime,majflt,trs,drs,rss,pmem,args a**)

[**X**](#X)

Формат регістру. ( **-o pid,stackp,esp,eip,tmout,alarm,stat,tty,bsdtime,args a**)

[**-y**](#y)

Не показувати прапорці, показувати rss замість addr. Цим параметром можна користуватися лише разом із **-l**.

[**Z**](#Z)

Додати стовпчик даних щодо захисту. Те саме, що і **-M** (для SELinux).

# МОДИФІКАТОРИ ВИВЕДЕННЯ

[**c**](#c~2)

Показати справжню назву команди. Ця назва є похідною від назви виконуваного файла, а не від значення argv. Таким чином, аргументи команди та усі внесені до них зміни показано не буде. Цей параметр, фактично, перетворює ключове слово форматування **args** на ключове слово форматування **comm**. Він корисний у поєднанні із параметром форматування **-f** та різноманітними параметрами форматування у стилі BSD, які, зазвичай, призводять до показу аргументів команди. Див. параметр **-f**, ключове слово форматування **args** та ключове слово форматування **comm**.

[**--cols n**](#cols)

Встановити ширину екрана.

[**--columns n**](#columns)

Встановити ширину екрана.

[**--cumulative**](#cumulative)

Включити деякі дані завершених дочірніх процесів (як суму із батьківським).

[**-D формат**](#D)

Встановити для формату дати поля **lstart** значення *формат*. Цей формат буде оброблено [**strftime**(3)](/man/os/procps/strftime.3). Запис має не перевищувати у довжину 24 символів, щоб не порушувати вирівнювання стовпчиків.

[**--date-format формат**](#date)

Те саме, що і **-D**.

[**--delimiter роздільник**](#delimiter)

Встановити роздільник між стовпчиками *роздільник* замість прогалини змінної ширини. Має бути одинарним символом.

[**e**](#e~2)

Показати середовище після команди.

[**f**](#f~2)

Вивести ієрархію (ліс) процесів у форматі рисунка ASCII.

[**--forest**](#forest)

Дерево процесів у форматі рисунка ASCII.

[**h**](#h)

Без заголовка (боа один заголовок на екран у випадку BSD). Параметр **h** може спричиняти проблеми. У стандартній **ps** для BSD цей параметр використано для виведення заголовка на кожній сторінці виведених даних, але у старому **ps** для Linux цей параметр повністю вимикає заголовок. У цій версії **ps** реалізовано версію для Linux — не виводити заголовок, якщо не вибрано варіант для BSD, для якого буде виведено один заголовок на кожній сторінці виведених даних. Незалежно від поточного варіанта, ви можете скористатися довгими версіями параметрів, **--headers** і **--no-headers**, щоб увімкнути виведення заголовків на кожній сторінці або вимкнути заголовки взагалі, відповідно.

[**-H**](#H)

Показати ієрархію процесів (ліс).

[**--headers**](#headers)

Повторювати рядки заголовка, по одному на виведену сторінку.

[**k специфікація**](#k)

Вказати варіант упорядкування. Синтаксис запису такий: \[**+**|**-**]*ключ.RB \[,\[ + | - ].IR ключ \[,...]].* Багатолітерний ключ можна вибрати зі списку у розділі **СТАНДАРТНІ СПЕЦИФІКАТОРИ ФОРМАТІВ**. Символ «+» є необов'язковим, оскільки типовим порядком є порядок за зростанням числових або лексикографічних значень. Те саме, що і **--sort**.

Приклади:  
**ps jaxkuid,-ppid,+pid**  
**ps axk comm o comm,args**  
**ps kstart\_time -ef**

[**--lines n**](#lines)

Встановити висоту екрана.

[**n**](#n)

Числове виведення для WCHAN і USER (включно із усіма типами UID і GID).

[**--no-headers**](#no)

Не виводити рядок заголовка взагалі. **--no-heading** є альтернативою для цього параметра.

[**O порядок**](#O~3)

Варіант упорядкування (перевантажений). Параметр **O** BSD може працювати як **--sort** (визначений користувачем формат виведення з деякими попередньо визначеними типовими полями) або бути використаним для визначення упорядкування. Для визначення поведінки цього параметра буде використано евристику. Для забезпечення бажаної поведінки (упорядкування або форматування) вкажіть параметр у якийсь інший спосіб (наприклад, з **-O** або **--sort**).

Для упорядковування, застарілим синтаксисом параметра **O** BSD є такий: **O**\[**+**|**-**]*k1*\[,\[**+**|**-**]*k2*\[,...]]. Він упорядковує список процесів за багаторівневим правилом, яке визначає послідовність однолітерних коротких ключів *k1*, *k2*, ,..., які описано у розділі **ЗАСТАРІЛІ КЛЮЧІ УПОРЯКОВУВАННЯ** нижче. У поточній версії «+» є необов'язковим, оскільки просто повторює типовий напрямок упорядковування, але він може допомогти відрізнити упорядкування **O** від формату **O**. Символ «-» змінює напрямок упорядковування лише для ключа, перед яким його вказано.

[**--rows n**](#rows)

Встановити висоту екрана.

[**S**](#S)

Підсумувати дані, зокрема використання процесора, від завершених дочірніх процесів до батьківського процесу. Корисно для аналізу системи, де батьківський процес періодично відгалужує короткотривалі дочірні процеси для виконання певних завдань.

[**--sort специфікація**](#sort)

Вказати варіант упорядкування Синтаксис запису такий: \[*+*|*-*]*ключ*\[,\[**+**|**-**]*ключ*\[,...]]. Багатолітерний ключ можна вибрати зі списку у розділі **СТАНДАРТНІ СПЕЦИФІКАТОРИ ФОРМАТІВ**. Символ «+» є необов'язковим, оскільки типовим порядком є порядок за зростанням числових або лексикографічних значень. Те саме, що і **k**. Приклад: **ps jax --sort=uid,-ppid,+pid**

[**--signames**](#signames)

Вивести маски сигналів з використанням скорочених назв сигналів і розгорнути стовпчик. Якщо ширина стовпчика не дає показати усі сигнали, запис стовпчика завершуватиметься плюсом, «*+*». Стовпчики, що містять лише дефіс, не мають сигналів.

[**w**](#w)

Широке виведення. Скористайтеся цим параметром двічі, щоб встановити необмежену ширину.

[**-w**](#w~2)

Широке виведення. Скористайтеся цим параметром двічі, щоб встановити необмежену ширину.

[**--width n**](#width)

Встановити ширину екрана.

# ПОКАЗ ПОТОКІВ ОБРОБКИ

[**H**](#H~2)

Показати потоки обробки так, наче вони є процесами.

[**-L**](#L)

Показати потоки, можливо, зі стовпчиками LWP і NLWP.

[**m**](#m)

Показати потоки обробки після процесів.

[**-m**](#m~2)

Показати потоки обробки після процесів.

[**-T**](#T~2)

Показати потоки обробки, можливо, зі стовпчиком SPID.

# ІНШІ ВІДОМОСТІ

[**--help розділ**](#help)

Вивести довідкове повідомлення. Аргументом *розділ* може бути одна з літер *s*imple (просте), *l*ist (список), *o*utput (виведення), *t*hreads (потоки), *m*isc (різне) або *a*ll (усе). Аргумент можна скоротити до однієї з підкреслених літер, ось так: s|l|o|t|m|a.

[**--info**](#info)

Вивести діагностичні дані.

[**L**](#L~2)

Список усіх специфікаторів формату.

[**V**](#V)

Вивести версію procps-ng.

[**-V**](#V~2)

Вивести версію procps-ng.

[**--version**](#version)

Вивести версію procps-ng.

# ЗАУВАЖЕННЯ

Ця версія **ps** працює на основі читання віртуальних файлів у /proc. Ця версія **ps** не потребує налаштування setuid kmem або інших привілеїв для запуску. Не надавайте цій версії **ps** ніяких додаткових прав доступу.

Використання процесора у цій версії буде показано у відсотках часу, який витрачено на виконання програми під час повного часу життя процесу. Це не ідеально, і це не узгоджується із стандартами, з якими узгоджується **ps** у інших аспектах. При цьому, загальне число використання процесора навряд чи точно дорівнюватиме 100%.

Поля SIZE і RSS не враховують деякі частини процесу, зокрема таблиці сторінок, стек ядра, структуру thread\_info та структуру task\_struct. Це, зазвичай, принаймні 20 КіБ пам'яті, яка завжди є резидентною. SIZE є віртуальним розміром процесу (код+дані+стек).

Процеси, які позначено як &lt;defunct&gt;, є мертвими процесами (так званими «зомбі»), які лишаються, оскільки їхній батьківський процес не завершив їхню роботу належним чином. Ці процеси буде знижено [*init*(8)](/man/os/procps/init.8), якщо завершить роботу батьківський процес.

Якщо довжина імені користувача перевищує ширину стовпчика на дисплеї, ім'я користувача буде обрізано. Для налаштовування довжини скористайтеся параметрами форматування **-o** і **-O**.

Не рекомендуємо користуватися параметрами команд, зокрема **ps -aux**, оскільки це призводить до неузгодженості у двох різних стандартах. Відповідно до стандартів POSIX і UNIX, наведена команда просить програму показати усі процеси з терміналом (загалом, команд, які запущено користувачами) і усі процеси, власником яких є користувач із іменем *x*. Якщо цього користувача не існує, **ps** припускатиме, що ви наказали виконати «**ps** *aux*».

# ПРАПОРЦІ ПРОЦЕСУ

Суму цих значень буде показано у стовпчику «F», який надається специфікатором виведення **flags**:

1 відгалужено, але не виконано 4 використано права доступу суперкористувача

# КОДИ СТАНУ ПРОЦЕСІВ

Тут наведено різні значення, які показують специфікатори виведення **s**, **stat** і **state** (заголовок «STAT» або «S»), для опису стану процесу:

D непридатний до переривання сон (зазвичай, введення-виведення) I бездіяльний потік обробки ядра R запущено або може бути запущено (у черзі запуску) S придатний до переривання сон (очікування на завершення події) T зупинено сигналом керування завданнями t зупинено засобом діагностики під час трасування W поділ на сторінки (не є чинним з часу ядер Linux 2.6) X мертвий (таке не має бути показано) Z неробочий процес (“зомбі”), перерваний, але не вилучений його батьківським процесом

Для форматів BSD, якщо використано ключове слово **stat**, може бути показано додаткові символи:

&lt; високопріоритетний (нелояльний до інших користувачів) N низькопріоритетний (лояльний до інших користувачів) L має заблоковані у пам'яті сторінки (для введення-виведення реального часу та нетипового введення-вивдення) s є лідером сеансу l є багатопотоковим (використовує CLONE\_THREAD, подібно до того, як це роблять pthreads NPTL) + перебуває у групі процесів переднього плану

# ЗАСТАРІЛІ КЛЮЧІ УПОРЯДКОВУВАННЯ

Ці ключі використовують разом із параметром **O** BSD (якщо його використовують для упорядковування). Параметр **--sort** GNU не використовує ці ключі, але описані нижче специфікатори з розділу **СТАНДАРТНІ СПЕЦИФІКАТОРИ ФОРМАТІВ**. Зауважте, що значення, які використано в упорядковуванні, є внутрішніми значеннями, які використовує **ps**, а не «оброблені» значення, які використовують у деяких полях форматування виведення (наприклад, у полі термінала упорядковування виконується за номером пристрою, а не за показаною назвою термінала). Передайте каналом виведені **ps** дані до програми [**sort**(1)](/man/os/procps/sort.1), якщо вам хочеться упорядкувати дані за обробленими значеннями.

**Ключ** **Довгий** **Опис** c cmd проста назва виконуваного файла C pcpu використання процесора f flags прапорці, як у довгому форматі поля F g pgrp ідентифікатор групи процесів G tpgid ідентифікатор групи процесів керівного термінала j cutime накопичувальний час користувача J cstime накопичувальний час системи k utime час користувача m min\_flt кількість вторинних помилок сторінок M maj\_flt кількість первинних помилок сторінок n cmin\_flt накопичені вторинні помилки сторінок N cmaj\_flt накопичені основні помилки сторінок o session ідентифікатор сеансу p pid ідентифікатор процесу P ppid ідентифікатор батьківського процесу r rss розмір оперативного набору R resident сторінки у резидентній пам'яті s size розмір пам'яті у кібібайтах S share кількість сторінок спільного використання t tty номер пристрою керівного термінала T start\_time момент часу, коли процес було запущено U uid номер ідентифікатора користувача u користувач ім’я користувача v vsize загальний розмір ВМ у КіБ y priority пріоритетність планування у ядрі

# ДЕСКРИПТОРИ ФОРМАТУ AIX

У цій версії **ps** передбачено підтримку дескрипторів форматів AIX, які працюють дещо подібно до кодів форматування [*printf*(1)](/man/os/procps/printf.1) і [*printf*(3)](/man/os/procps/printf.3). Коди **NORMAL** описано у наступному розділі.

**Код** **Звичайний** **Заголовок** %C pcpu %CPU %G group GROUP %P ppid PPID %U користувач USER %a args КОМАНДА %c comm КОМАНДА %g rgroup RGROUP %n nice NI %p pid PID %r pgid PGID %t etime ELAPSED %u ruser RUSER %x time TIME %y tty TTY %z vsz VSZ

# СТАНДАРТНІ СПЕЦИФІКАТОРИ ФОРМАТІВ

Нижче наведено різні ключові слова, якими можна скористатися для керування форматом виведення (наприклад, з параметром **-o**) або упорядковування вибраних процесів за допомогою параметра **--sort** у стилі GNU.

Приклад: **ps -eo pid,user,args --sort user**

У цій версії **ps** виконано спробу реалізувати розпізнавання більшості ключових слів, які використовують у інших реалізаціях **ps**.

Пробіли можуть міститися у таких визначених користувачем специфікаторах форматів: **args**,**cmd**,**comm**,**command**,**fname**,**ucmd**,**ucomm**, **lstart**,**bsdstart**,**start**.

Деякими ключовими словами не можна скористатися для упорядковування.

**Код** **Заголовок** **Опис** **%cpu** **%CPU** використання процесом процесора у форматі «##.#». У поточній версії це частка від ділення витраченого на виконання процесу часу на час, протягом якого процес працює (відношення «час процесора/справжній час»), виражене у відсотках. Дуже часто загальна сума таких значень є меншою за 100% (альтернатива — **pcpu**). **%mem** **%MEM** відношення розміру резидентного набору процесу до фізичної пам'яті комп'ютера, виражене у відсотках (альтернатива — **pmem**). **ag\_id** **AGID** Ідентифікатор автогрупи, який пов'язано із процесом, що працює у поєднанні із планувальником CFS для удосконалення швидкодії інтерактивної стільниці. **ag\_nice** **AGNI** Значення пріоритетності автогрупи, яке стосується планування усіх процесів у цій групі. **args** **КОМАНДА** команда із усіма аргументами як рядок. Може бути показано зміни у аргументах. Виведені до цього стовпчика дані можуть містити пробіли. Процес, який позначено записом &lt;defunct&gt; є частково мертвим, таким, що очікує на повне знищення батьківським процесом. Іноді аргументи процесу можуть виявитися недоступними. Коли таке трапляється, **ps** виведе назву виконуваного файла у квадратних дужках (альтернатива – **cmd**, **command**). Див. також ключове слово форматування **comm**, параметр **-f** та параметр **c**. Якщо вказано останнім, цей стовпчик буде розтягнуто до краю дисплея. Якщо **ps** не вдасться визначити ширину дисплея, наприклад, коли виведені дані буде переспрямовано (каналом) до файла або іншої програми, ширина виведення залишиться невизначеною (вона може дорівнювати 80, бути необмеженою, визначатися змінною **TERM** тощо). У цьому випадку для точного визначення ширини показу можна скористатися змінною середовища **COLUMNS**, яку може бути перевизначено за допомогою **--cols**, **--columns** або **--width**. Для коригування ширини також можна скористатися параметром **w** або **-w**. **blocked** **BLOCKED** маска блокованих сигналів, див. [*signal*(7)](/man/os/procps/signal.7). Відповідно до ширини поля, буде показано 32- або 64-бітову маску у шістнадцятковому форматі, якщо не використано параметр **--signames** (альтернатива – **sig\_block**, **sigmask**). **bsdstart** **START** час запуску команди Якщо процес було запущено менше ніж 24 години тому, буде виведено дані у форматі «ГГ:ХХ», інакше, дані буде виведено у форматі « Ммм дд» (де «Ммм» — трилітерне скорочення назви місяця). Див. також **lstart**, **start**, **start\_time** і **stime**. **bsdtime** **TIME** накопичувальний час процесора, користувач + система. Форматом показу, зазвичай, є «ХХХ:СС», але його можна посунути праворуч, якщо процес використав понад 999 хвилин часу процесора. **c** **C** використання процесора. У поточній версії це ціле значення у відсотках використання процесора до часу життя процесу (див. **%cpu**). **caught** **CAUGHT** маска перехоплених, див. [*signal*(7)](/man/os/procps/signal.7). Відповідно до ширини поля, буде показано 32- або 64-бітову маску у шістнадцятковому форматі, якщо не використано параметр **--signames** (альтернатива – **sig\_catch**, **sigcatch**). **cgname** **CGNAME** назва керівних груп дисплея, до яких належить процес. **cgroup** **CGROUP** керівні групи дисплея, до яких належить процес. **cgroupns** **CGROUPNS** Унікальний номер inode, що описує простір назв, до якого належить процес. Див. [*namespaces*(7)](/man/os/procps/namespaces.7). **class** **CLS** клас планування процесу. (альтернатива — **policy**, **cls**). Можливими значеннями поля є такі: +9n - не повідомлено TS SCHED\_OTHER FF SCHED\_FIFO RR SCHED\_RR B SCHED\_BATCH ISO SCHED\_ISO IDL SCHED\_IDLE DLN SCHED\_DEADLINE ? невідоме значення **cls** **CLS** клас планування процесу. (альтернатива — **policy**, **cls**). Можливими значеннями поля є такі: +9n - не повідомлено TS SCHED\_OTHER FF SCHED\_FIFO RR SCHED\_RR B SCHED\_BATCH ISO SCHED\_ISO IDL SCHED\_IDLE DLN SCHED\_DEADLINE ? невідоме значення **cmd** **CMD** див. **args** (альтернатива – **args**, **command**). **comm** **КОМАНДА** назва команди (лише назва виконуваного файла). Виведені до цього стовпчика дані можуть містити пробіли. (альтернативи – **ucmd**, **ucomm**). Див. також ключове слово форматування **args**, параметр **-f** та параметр **c**. Якщо вказано останнім, цей стовпчик буде розтягнуто до краю дисплея. Якщо **ps** не вдасться визначити ширину дисплея, наприклад, коли виведені дані буде переспрямовано (каналом) до файла або іншої програми, ширина виведення залишиться невизначеною (вона може дорівнювати 80, бути необмеженою, визначатися змінною **TERM** тощо). У цьому випадку для точного визначення ширини показу можна скористатися змінною середовища **COLUMNS** або параметром **--cols**. Для коригування ширини також можна скористатися параметром **w** або **-w**. **command** **КОМАНДА** Див. **args**. (альтернатива – **args**, **command**). **cp** **CP** використання процесора у проміле (десятих відсотка) (див. **%cpu**). **процесор** **Процесор** Див. **psr**. (альтернативи **cpuid**, **lastcpu**, **psr**). **cpuid** **CPUID** Див. **psr**. (альтернатива **cpu**, **lastcpu**, **psr**). **cputime** **TIME** накопичувальний час процесора у форматі «\[ДД-]гг:хх:сс» (альтернатива — **time**). **cputimes** **TIME** накопичувальний час процесора у секундах (альтернатива – **times**). **cuc** **%CUC** Використання процесора процесом, включно із завершеними дочірніми процесами, у розширеному форматі «##.###». (див. також **%cpu**, **c**, **cp**, **cuu**, **pcpu**). **cuu** **%CUU** Використання процесора процесом, у розширеному форматі «##.###». (див. також **%cpu**, **c**, **cp**, **cuc**, **pcpu**). **docker** **DOCKER** Скорочений ідентифікатор контейнера docker, у якому запущено завдання. Якщо процес не запущено у контейнері, буде показано дефіс («-»). **drs** **DRS** об'єм резидентного набору, обсяг приватної пам'яті, який *зарезервовано* процесом. Також називають DATA. Таку пам'ять ще не може бути пов'язано **rss**, але її буде завжди включено в обсяг **vsz**. **egid** **EGID** числовий ідентифікатор ефективної групи процесу у форматі десяткового цілого числа (альтернатива – **gid**). **egroup** **EGROUP** ідентифікатор ефективної групи процесу. Це буде текстовий ідентифікатор групи, якщо його можна отримати, і поле є достатньо широким, або числове представлення, якщо це не так. (альтернатива – **group**). **eip** **EIP** вказівник на інструкцію. З часу появи ядра 4.9.xx буде занулено, якщо завдання не завершує роботу або система створює дамп ядра для нього. **esp** **ESP** вказівник на стек. З часу появи ядра 4.9.xx буде занулено, якщо завдання не завершує роботу або система створює дамп ядра для нього. **etime** **ELAPSED** Час, що сплинув з часу запуску процесу у формі \[\[ДД-]гг:]хх:сс. **etimes** **ELAPSED** час, що минув з моменту запуску процесу, у секундах. **environ** **ENVIRON** змінні середовища для процесу. **euid** **EUID** ідентифікатор ефективного користувача (альтернатива – **uid**). **euser** **EUSER** ефективне ім'я користувача. Це буде текстовий ідентифікатор користувача, якщо його можна отримати і поле є достатньо широким, або числове представлення, якщо це не так. Для примусового визначення десяткового представлення можна скористатися параметром **n**. (альтернатива – **uname**, **user**). **exe** **EXE** шлях до виконуваного файла. Корисно, якщо шлях не може бути виведено за допомогою параметрів форматування **cmd**, **comm** або **args**. **f** **F** прапорці, які пов'язано із процесом, Див. розділ **ПРАПОРЦІ ПРОЦЕСУ**. (альтернатива – **flag**, **flags**). **fds** **FDS** загалом відкритих дескрипторів файлів. **fgid** **FGID** ідентифікатор групи для доступу до файлової системи (альтернатива – **fsgid**). **fgroup** **FGROUP** ідентифікатор групи для доступу до файлової системи. Це буде текстовий ідентифікатор групи, якщо його можна отримати, і поле є достатньо широким, або числове представлення, якщо це не так. (альтернатива – **fsgroup**). **flag** **F** див. **f** (альтернатива – **f**, **flags**). **flags** **F** див. **f** (альтернатива – **f**, **flag**). **fname** **КОМАНДА** перші 8 байтів базової назви виконуваного файла процесу. Виведені дані у цьому стовпчику можуть містити пробіли. **fuid** **FUID** ідентифікатор користувача для доступу до файлової системи (альтернатива – **fsuid**). **fuser** **FUSER** ідентифікатор користувача для доступу до файлової системи. Це буде текстовий ідентифікатор користувача, якщо його можна отримати і поле є достатньо широким, або числове представлення, якщо це не так. **gid** **GID** див. **egid** (альтернатива **egid**). **group** **GROUP** див. **egroup** (альтернатива – **egroup**). **htprv** **HTPRV** Об'єм приватної пам'яті, зарезервованої сторінкою hugetlbfs, який не враховується у параметрах форматування **rss** або **pss**. **htshr** **HTSHR** Об'єм спільної пам'яті, зарезервованої сторінкою hugetlbfs, який не враховується у параметрах форматування **rss** або **pss**. **ignored** **IGNORED** маска ігнорованих сигналів, див. [*signal*(7)](/man/os/procps/signal.7). Відповідно до ширини поля, буде показано 32- або 64-бітову маску у шістнадцятковому форматі, якщо не використано параметр **--signames** (альтернатива – **sig\_ignore**, **sigignore**). **ipcns** **IPCNS** Унікальний номер inode, що описує простір назв, до якого належить процес. Див. [*namespaces*(7)](/man/os/procps/namespaces.7). **label** **LABEL** мітка захисту, здебільшого використовують для даних контексту SELinux. Призначено для *Mandatory Access Control* («MAC») у високозахищених системах. **lastcpu** **C** Див. **psr**. (альтернатива **cpu**, **cpuid**, **psr**). **lstart** **STARTED** час, коли було віддано команду. Цей запис матиме форму «ДДД ммм ГГ:ХХ:СС РРР», якщо його формат не було змінено за допомогою параметра **-D**. **lsession** **SESSION** показує ідентифікатор сеансу входу процесу, якщо було включено підтримку systemd. **luid** **LUID** показує ідентифікатор входу, який пов'язано із процесом. **lwp** **LWP** ідентифікаторів легких процесів (потоків) розподілюваного запису (альтернатива – **spid**, **tid**). Див. **tid**, щоб дізнатися більше. **lxc** **LXC** Назва контейнера LXC, у якому запущено завдання. Якщо процес не запущено у контейнері, буде показано дефіс («-»). **machine** **MACHINE** показує назву комп'ютера для процесів, які пов'язано із віртуальною машиною або контейнером, якщо було включено підтримку systemd. **maj\_flt** **MAJFLT** Кількість основних помилок сторінок, які сталися із цим процесом. **min\_flt** **MINFLT** Кількість вторинних помилок сторінок, які сталися із цим процесом. **mntns** **MNTNS** Унікальний номер inode, що описує простір назв, до якого належить процес. Див. [*namespaces*(7)](/man/os/procps/namespaces.7). **netns** **NETNS** Унікальний номер inode, що описує простір назв, до якого належить процес. Див. [*namespaces*(7)](/man/os/procps/namespaces.7). **ni** **NI** значення nice. Діапазон значення — від 19 (найнижча пріоритетність) до -20 (найвища пріоритетність щодо інших), див. [*nice*(1)](/man/os/procps/nice.1) (альтернатива – **nice**). **nice** **NI** див. **ni**. **(альтернатива** **ni**). **nlwp** **NLWP** кількість lwps (потоків обробки) у процесі (альтернатива – **thcount**). **numa** **NUMA** Вузол, з яким пов'язано останній використаний процесор. Якщо тут показано *-1*, дані щодо NUMA є недоступними. **nwchan** **WCHAN** адреса функції ядра, де спить процес (скористайтеся, **wchan**, якщо вам потрібна назва функції). **oom** **OOM** Оцінка виходу за межі доступної пам'яті. Значення у діапазоні від 0 до +1000, яке буде використано для вибору завдань, виконання яких слід припинити, якщо буде вичерпано пам'ять. **oomadj** **OOMADJ** Коефіцієнт коригування виходу за межі доступної пам'яті. Значення, яке буде додано до поточного рахунку виходу за межі пам'яті (OOM), яке потім буде використано для визначення того, виконання якого завдання слід припинити, якщо пам'ять буде вичерпано. **ouid** **OWNER** показує ідентифікатор користувача Unix власника сеансу процесу, якщо було включено підтримку systemd. **pcap** **PCAP** Дозволені можливості процесу, які буде показано як шістнадцяткову бітову маску. Див. [*capabilities*(7)](/man/os/procps/capabilities.7). **pcaps** **PCAPS** Дозволені можливості процесу, які буде показано як рядок назв можливостей. Див. [*capabilities*(7)](/man/os/procps/capabilities.7). **pcpu** **%CPU** див. **%cpu** (альтернатива – **%cpu**). **pending** **PENDING** маска сигналів черги. Див. [*signal*(7)](/man/os/procps/signal.7). Черга сигналів процесу відрізняється від черги сигналів потоків обробки. Скористайтеся параметрами **m** і **-m** для перегляду обох. Відповідно до ширини поля, буде показано 32- або 64-бітову маску у шістнадцятковому форматі, якщо не використано параметр **--signames** (альтернатива – **sig**). **pgid** **PGID** ідентифікатор групи процесів або, що те саме, ідентифікатор процесу лідера групи процесів (альтернатива – **pgrp**). **pgrp** **PGRP** див. **pgid** (альтернатива – **pgid**). **pid** **PID** число, що відповідає ідентифікатору процесу (альтернатива – **tgid**). **pidns** **PIDNS** Унікальний номер inode, що описує простір назв, до якого належить процес. Див. [*namespaces*(7)](/man/os/procps/namespaces.7). **pmem** **%MEM** див. **%mem** (альтернатива – **%mem**). **policy** **POL** клас планування процесу. (альтернатива — **class**, **cls**). Можливими значеннями поля є такі: +9n - не повідомлено TS SCHED\_OTHER FF SCHED\_FIFO RR SCHED\_RR B SCHED\_BATCH ISO SCHED\_ISO IDL SCHED\_IDLE DLN SCHED\_DEADLINE ? невідоме значення **ppid** **PPID** ідентифікатор батьківського процесу. **pri** **PRI** пріоритетність процесу. Більше число — вища пріоритетність. **psr** **PSR** процесор, на якому востаннє виконувався процес. (альтернатива **cpu**, **cpuid**, **lastcpu**). **pss** **PSS** Пропорційний розмір спільного користування, нерезервована фізична пам'ять із пам'яттю спільного використання, яку пропорційно враховано для усіх завдань, які виконують її прив'язування. **rbytes** **RBYTES** Кількість байтів, отримання яких з шару сховища даних було насправді спричинено цим процесом. **rchars** **RCHARS** Кількість байтів, читання яких зі сховища даних було спричинено цим завданням. **rgid** **RGID** справжній ідентифікатор групи. **rgroup** **RGROUP** назва справжньої групи. Це буде текстовий ідентифікатор групи, якщо його можна отримати і поле є достатньо широким, або числове представлення, якщо це не так. **rops** **ROPS** Кількість дій з введення-виведення читання, тобто системних викликів [**read**(2)](/man/os/procps/read.2) і [**pread**(2)](/man/os/procps/pread.2). **rss** **RSS** розмір резидентного набору, нерезервована фізична пам'ять, яку використано завданням (у кілобайтах) (альтернатива – **rssize**, **rsz**). **rssize** **RSS** див. **rss** (альтернатива – **rss**, **rsz**). **rsz** **RSZ** див. **rss** (альтернатива – **rss**, **rssize**). **rtprio** **RTPRIO** пріоритетність справжнього часу. **ruid** **RUID** справжній ідентифікатор користувача. **ruser** **RUSER** справжній ідентифікатор користувача. Це буде текстовий ідентифікатор користувача, якщо його можна отримати і поле є достатньо широким, або числове представлення, якщо це не так. **s** **S** мінімальний показ стану (один символ). Див. розділ **КОДИ СТАНІВ ПРОЦЕСУ** для різних значень. Див. також **stat**, якщо вам потрібен показ додаткових відомостей (альтернатива – **state**). **sched** **SCH** правила планування для процесу. Для правил SCHED\_OTHER (SCHED\_NORMAL), SCHED\_FIFO, SCHED\_RR, SCHED\_BATCH, SCHED\_ISO, SCHED\_IDLE і SCHED\_DEADLINE, відповідно, буде показано як 0, 1, 2, 3, 4, 5 і 6. **сидіння** **SEAT** показує ідентифікатор, який пов'язано із усіма призначеними до певного робочого місця апаратними пристроями, якщо було включено підтримку systemd. **sess** **SESS** ідентифікатор сеансу або, що те саме, ідентифікатор процесу лідера сеансу. (альтернатива **session**, **sid**). **sgi\_p** **P** процесор, на якому виконується процес. Буде показано «\*», якщо процес не працює або не є придатним до запуску. **sgid** **SGID** ідентифікатор збереженої групи. (альтернатива **svgid**). **sgroup** **SGROUP** назва збереженої групи. Це буде текстовий ідентифікатор групи, якщо його можна отримати і поле є достатньо широким, або числове представлення, якщо це не так. **sid** **SID** див. **sess**. (альтернатива **sess**, **session**). **sig** **PENDING** див. **pending**. (альтернатива **pending**, **sig\_pend**). **sigcatch** **CAUGHT** див. **caught**. (альтернатива **caught**, **sig\_catch**). **sigignore** **IGNORED** див. **ignored**. (альтернатива **ignored**, **sig\_ignore**). **sigmask** **BLOCKED** див. **blocked**. (альтернатива **blocked**, **sig\_block**). **size** **SIZE** приблизний обсяг простору резервної пам'яті, який знадобиться, якщо процес зіпсує усі записувані сторінки з наступним витісненням до резервної пам'яті. Це числове значення обчислено досить грубо! **slice** **SLICE** показує модуль зрізу, до якого належить процес, якщо було включено підтримку systemd. **spid** **SPID** див. **lwp**. (альтернативи **lwp**, **tid**). **stackp** **STACKP** адреса низу (початку) стека для процесу. **start** **STARTED** час запуску команди. Якщо процес було запущено менше ніж 24 години тому, буде виведено дані у форматі «ГГ:ХХ:СС», інакше, дані буде виведено у форматі «  Ммм дд» (де «Ммм» — трилітерне скорочення назви місяця). Див. також **bsdstart**, **start**, **start\_time** і **stime**. **start\_time** **START** час або дата запуску процесу. Якщо процес не було запущено року, коли було викликано **ps**, буде показано лише рік або «МммДД», якщо процес не було запущено у той самий день, або «ГГ:ХХ» у інших випадках. Див. також **bsdstart**, **start**, **lstart** і **stime**. **stat** **STAT** багатосимвольний стан процесу. Див. розділ **КОДИ СТАНІВ ПРОЦЕСУ**, щоб дізнатися про призначення різних значень. Див. також **s** і **state**, якщо ви просто хочете бачити перший символ. **state** **S** див. **s**. (альтернатива  **s**). **stime** **STIME** див. **start\_time**. (альтернатива **start\_time**). **suid** **SUID** збережений ідентифікатор користувача (альтернатива – **svuid**). **supgid** **SUPGID** ідентифікатори груп для допоміжних груп, якщо такі є. Див. [**getgroups**(2)](/man/os/procps/getgroups.2). **supgrp** **SUPGRP** назви груп для допоміжних груп, якщо такі є. Див. [**getgroups**(2)](/man/os/procps/getgroups.2). **suser** **SUSER** збережене ім'я користувача. Це буде текстовий ідентифікатор користувача, якщо його можна отримати і поле є достатньо широким, або числове представлення, якщо це не так (альтернатива – **svuser**). **svgid** **SVGID** див. **sgid** (альтернатива – **sgid**). **svuid** **SVUID** див. **suid**. (альтернатива **suid**). **sz** **SZ** розмір у фізичних сторінках образу ядра процесу. Це включає текст, дані та стек. У поточній версії прив'язки до пристроїв виключено; це може змінитися. Див. **vsz** і **rss**. **tgid** **TGID** число, яке відповідає групі потоків обробки, яким належить завдання (альтернатива – **pid**). Це ідентифікатор процесу лідера групи потоків обробки. **thcount** **THCNT** див. **nlwp** (альтернатива – **nlwp**), кількість потоків обробки ядра, власником яких є процес. **tid** **TID** унікальне число, що відповідає розподілюваному запису (альтернатива – **spid**, **spid**). Це значення може також бути показано як ідентифікатор процесу (pid); ідентифікатор групи процесів (pgrp); ідентифікатор сеансу для лідера сеансу (sid); ідентифікатор групи потоків для лідера групи потоків (tgid) та ідентифікатор групи процесів термінала для лідера групи процесів (tpgid). **time** **TIME** накопичувальний час процесора у форматі «\[ДД-]ГГ:ХХ:СС» (альтернатива — **cputime**). **timens** **TIMENS** Унікальний номер inode, що описує простір назв, до якого належить процес. Див. [*namespaces*(7)](/man/os/procps/namespaces.7). **times** **TIME** накопичувальний час процесора у секундах (альтернатива – **cputimes**). **tname** **TTY** керівний tty (термінал) (альтернатива – **tt**, **tty**). **tpgid** **TPGID** ідентифікатор основної групи процесів на tty (термінала), з яким з'єднано процес, або -1, якщо процес не з'єднано з терміналом. **trs** **TRS** розмір резидентного набору текстових даних, обсяг фізичної пам'яті, яку використано для даних виконуваного коду. **tt** **TT** керівний tty (термінал) (альтернатива – **tname**, **tty**). **tty** **TT** керівний tty (термінал) (альтернатива – **tname**, **tt**). **ucmd** **CMD** див. **comm** (альтернатива – **comm**, **ucomm**). **ucomm** **КОМАНДА** див. **comm**. (альтернативи **comm**, **ucmd**). **uid** **UID** див. **euid**. (альтернатива **euid**). **uname** **USER** див. **euser**. (альтернативи **euser**, **user**). **unit** **UNIT** показує модуль, до якого належить процес, якщо було включено підтримку systemd. **користувач** **USER** див. **euser**. (альтернативи **euser**, **uname**). **userns** **USERNS** Унікальний номер inode, що описує простір назв, до якого належить процес. Див. [*namespaces*(7)](/man/os/procps/namespaces.7). **uss** **USS** Розмір унікального набору, нерезервована фізична пам'ять, яку не використано спільно з іншими завданнями. **utsns** **UTSNS** Унікальний номер inode, що описує простір назв, до якого належить процес. Див. [*namespaces*(7)](/man/os/procps/namespaces.7). **uunit** **UUNIT** показує модуль користувача, до якого належить процес, якщо було включено підтримку systemd. **vsize** **VSZ** див. **vsz**. (альтернатива **vsz**). **vsz** **VSZ** розмір віртуальної пам'яті процесу у КіБ (1024-байтових одиницях). У поточній версії прив'язки до пристроїв буде виключено; це може бути змінено у майбутніх версіях (альтернатива – **vsize**). **wbytes** **WBYTES** Кількість байтів, які було надіслано до шару сховища завдяки цьому процесу. **wcbytes** **WCBYTES** Кількість байтів, запис яких скасовано. **wchan** **WCHAN** назва функції ядра, у який спить процес. **wchars** **WCHARS** Кількість байтів, запис на диск яких було спричинено або буде спричинено цим завданням. **wops** **WOPS** Кількість дій з введення-виведення запису, тобто системних викликів [**write**(2)](/man/os/procps/write.2) і [**pwrite**(2)](/man/os/procps/pwrite.2).

# ЗМІННІ СЕРЕДОВИЩА

На роботу **ps** можуть впливати такі змінні середовища:

[**COLUMNS**](#COLUMNS)

Перевизначити типову ширину дисплея.

[**LINES**](#LINES)

Перевизначити типову висоту дисплея.

[**PS\_PERSONALITY**](#PS_PERSONALITY)

Встановлюють одне зі значень: posix, old, linux, bsd, sun, digital.. (див. розділ **УОСОБЛЕННЯ** нижче).

[**CMD\_ENV**](#CMD_ENV)

Встановлюють одне зі значень: posix, old, linux, bsd, sun, digital.. (див. розділ **УОСОБЛЕННЯ** нижче).

[**I\_WANT\_A\_BROKEN\_PS**](#I_WANT_A_BROKEN_PS)

Примусово використатися застарілу інтерпретацію рядка команди.

[**LC\_TIME**](#LC_TIME)

Формат дати.

[**LIBPROC\_HIDE\_KERNEL**](#LIBPROC_HIDE_KERNEL)

Встановіть будь-яке значення, щоб приховати потоки обробки ядра, які зазвичай буде показано при використанні параметра **-e**. Еквівалент вибору **--ppid 2 -p 2 --deselect**. Також працює у режимі BSD.

[**PS\_COLORS**](#PS_COLORS)

У поточній версії підтримки не передбачено.

[**PS\_FORMAT**](#PS_FORMAT)

Перевизначення типового формату виведення. Ви можете встановити для цієї змінної рядок форматування типу, який використовують для параметра **-o**. Зокрема, корисними будуть значення **DefSysV** і **DefBSD**.

[**POSIXLY\_CORRECT**](#POSIXLY_CORRECT)

Не шукати виправдань ігнорування помилкових «можливостей».

[**POSIX2**](#POSIX2)

Якщо встановлено «on», працює як **POSIXLY\_CORRECT**.

[**UNIX95**](#UNIX95)

Не шукати виправдань ігнорування помилкових «можливостей».

**\_XPG**

Скасувати нестандартну поведінку **CMD\_ENV**=*irix*.

Загалом, не варто встановлювати значення для цих змінних. Єдиним виключенням є **CMD\_ENV** або **PS\_PERSONALITY**, для яких можна встановити значення Linux для звичайних систем. Без встановлення цього значення **ps** виконуватиме непотрібні і неякісні частини стандарту Unix98.

# УОСОБЛЕННЯ

390 подібний до **ps** для OS/390 OpenEdition aix подібно до **ps** в AIX bsd подібний до **ps** для FreeBSD (повністю нестандартний) compaq подібний до **ps** для Digital Unix debian подібний до **ps** для старого Debian digital подібний до **ps** для Tru64 (раніше Digital Unix, раніше OSF/1) gnu подібний до **ps** для старого Debian к.с. подібно до **ps** в HP-UX hpux подібно до **ps** в HP-UX irix подібно до **ps** в Irix linux \*\*\*\** **рекомендовано** \*\*\*\** old подібний до початкового **ps** для Linux (повністю нестандартний) os390 подібний до **ps** в OS/390 Open Edition posix standard s390 подібний до **ps** в OS/390 Open Edition sco подібний до **ps** для SCO sgi подібно до **ps** в Irix solaris2 подібний до **ps** для Solaris 2+ (SunOS 5) sunos4 подібний до **ps** для SunOS 4 (Solaris 1) (повністю нестандартний) svr4 standard sysv standard tru64 подібний до **ps** для Tru64 (раніше Digital Unix, раніше OSF/1) unix standard unix95 standard unix98 standard

# ВАДИ

У полях **bsdstart** і **start** буде показано лише скорочену назву місяця англійською. У полях **lstart** і **stime** буде показано скорочену назву місяця у налаштованій локалі, але ця назва може вийти за межі стовпчика через різну довжину скорочених назв місяців та днів у різних мовах.

# ТАКОЖ ПЕРЕГЛЯНЬТЕ

[**pgrep**(1)](/man/os/procps/pgrep.1), [**pstree**(1)](/man/os/procps/pstree.1), [**top**(1)](/man/os/procps/top.1), [**strftime**(3)](/man/os/procps/strftime.3), [**proc**(5)](/man/os/procps/proc.5), [**capabilities**(7)](/man/os/procps/capabilities.7).

# СТАНДАРТИ

**ps** є сумісним із наведеними нижче стандартами.

•

Версією 2 Single Unix Specification

•

The Open Group Technical Standard Base Specifications, випуск 6

•

IEEE Std 1003.1, 2004 Edition

•

X/Open System Interfaces Extension \[UP XSI]

•

ISO/IEC 9945:2003

# АВТОР

Першу версію **ps** було написано [Branko Lankester](mailto:lankeste@fwi.uva.nl). [Michael K. Johnson](mailto:johnsonm@redhat.com) значно переписав програму для використання файлової системи proc, змінивши декілька речей у процесі. [Michael Shields](mailto:mjshield@nyx.cs.du.edu) додав можливість списку pid. [Charles Blake](mailto:cblake@bbn.com) додав багаторівневе упорядковування, бібліотеку у стилі dirent, базу даних із прив'язкою назв пристроїв до чисел, приблизний двійковий пошук безпосередньо у System.map, а також виконав багато упорядкування коду та документації. David Mossberger-Tang написав загальну підтримку BFD для psupdate. [Albert Cahalan](mailto:albert@users.sf.net) переписав ps з метою повної підтримки стандартів Unix98 та BSD, додавши деякий обхідний код для застарілого і стороннього синтаксису.

Про вади, будь ласка, повідомляйте на адресу [procps@freelists.org](mailto:procps@freelists.org). Підписка не є обов'язковою.

23 квітня 2025 року procps-ng

---

Document: ps(1) from procps 4.0.7-r1 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-4.0.7.tar.xz
