У вас відкрито щонайменше п'ять інших вкладок у браузері, намагаючись знайти розв'язання проблеми Linux, з якою ви зіткнулися?
Це явище характерне не лише для вас чи людей загалом. Машини також виконують багато операцій одночасно. І так само як ви, Linux — також мультизадачна система з кількома одночасними процесами. Незалежно від того, чи ви розробник, який професійно використовує Linux, чи звичайний користувач, який працює з Linux у повсякденних справах, вам потрібно розуміти ці паралельні процеси, щоб повністю контролювати систему. Керування процесами та системний контроль — ключові аспекти роботи з Linux.
Щоб ефективно керувати процесами в системі, побачити що відбувається в режимі реального часу, мати загальне уявлення про всі фонові процеси та контролювати системні ресурси, потрібні спеціальні знання про керування процесами. Команда ps aux — потужна команда, яка відіграє важливу роль у керуванні процесами та системному контролі. У цій статті ми дізнаємося більше про команду ps aux та її варіанти використання. Ми також розглянемо основи роботи процесів Linux.
Розуміння керування процесами в Linux
При роботі з Linux більшість наших взаємодій із системою здійснюються через команди. В Linux процес — це виконання команди. Керування процесами Linux включає маніпулювання процесами, які запущена команда. Ви можете завершити процес, запустити процес або відновити зупинені процеси. Ви також можете маніпулювати командами, які виконуються.
Існує два типи процесів Linux:
- Процеси на передньому плані
- Фонові процеси
Процеси переднього плану Linux
Процес переднього плану — це процес, який активно виконується й зазвичай потребує постійної взаємодії з користувачем у реальному часі. Коли працює процес переднього плану, виконання інших процесів зупиняється. Таким чином, ви не можете запускати інші команди. Процес переднього плану отримує введення з клавіатури як стандартне введення або stdin. Щоб уникнути плутанини, stdin та stdout — це потоки даних Linux поряд з stderr. По суті, це те, як користувач взаємодіє з процесом та надає йому дані. Є стандартний вивід або stdout, який створюється процесом на основі його функціональності та введення. Процеси переднього плану — це режим виконання за замовчуванням в Linux.
Фонові процеси Linux
Фонові процеси — це прямо протилежність процесам переднього плану, оскільки вони не потребують взаємодії користувача та не займають весь простір терміналу, що дозволяє виконувати інші процеси. Вид введення та виводу фонових процесів також відрізняється. Вони зазвичай не отримують stdin. Однак результати процесу можна вивести як stdout. Вивід фонових процесів відбувається одночасно з виводом інших процесів переднього плану. Таким чином, ви можете спостерігати прогрес або результати фонового процесу без перешкод іншим важливим дійсням.
Оскільки виконання широкого спектру завдань в Linux залежить від командного рядка, процеси переднього плану можуть бути проблематичними, тоді як запуск процесів у фоні звільняє ваш термінал для роботи над іншими завданнями. Отже, переміщення завдання переднього плану у фон — це розумна дія. Щоб відправити процес у фон спочатку слід зупинити його виконання на передньому плані. Це робиться простим натисканням CTRL+Z. Потім введіть команду bg, і припинений процес запуститься в фоновому режимі. Команда fg повернеться до передніх позицій.
Стан процесу; синтаксис, команди та інтерпретація результатів
Ефективне керування процесами в Linux вимагає розуміння стану процесів, які можна контролювати за допомогою команди ps aux. Але перед тим, як глибше вивчати команду ps aux, давайте дізнаємось про різні стани процесів. Хоча існує кілька типів процесів та станів процесів, ось таблиця найпоширеніших з них:
| Статус процесу | опис | |
| Запущено(R) | Процес зараз виконується та використовує ресурси CPU. | |
| Спання | Переривна (S) | Процес очікує певного вводу або події для продовження виконання. Зараз він не використовує ресурси CPU. Коли ресурси стають доступні або надходять сигнали, процес відновлює роботу. |
| Невперервна (D) | Як і процес у стані переривного сну, процес у стані неперервного сну не використовує ресурси CPU. Єдина різниця в тому, що він не реагує на сигнали й повертається до роботи тільки коли стають доступні ресурси. | |
| Зупинено(T) | Введення користувача або певна подія призупинили процес. Процес у зупиненому стані не використовує ресурси CPU. | |
| Мертвий(X) | Процес завершений і більше не існує. | |
Гарне розуміння цих станів процесів є критичним аспектом ефективного керування та усунення несправностей систем Linux. Тепер розглянемо синтаксис та команди для отримання інформації про стан процесу в Linux, а також способи інтерпретації результатів.
Синтаксис та команди для отримання стану процесу
Ви можете отримати стан процесу в Linux за допомогою базового синтаксису команди ps:
ps [process name]
Крім того, з командою ps можна використовувати й інші опції:
до: Ця опція показує повний список усіх процесів, що виконуються в системі. Вона надає інформацію про ID процесів (PID), ID батьківських процесів (PPID), використання CPU та пам'яті, а також стани процесів. Результат команди ps aux набагато акуратніший, має кращу читабельність та містить значно більше корисної інформації, ніж базова команда ps.
ef: Ця опція показує форматований список процесів з детальною інформацією, включаючи ієрархію процесів у вигляді деревоподібної структури.
l: Ця опція забезпечує довгий формат списку з детальнішою інформацією про процеси.
Розуміння результатів
Коли ви виконуєте команду ps з потрібними опціями, вона генерує результат, що відображає процеси, які зараз виконуються на вашій системі. Результат складається зі стовпців, які показують різні атрибути процесу, включаючи ID процесу (PID), ID батьківського процесу (PPID), використання CPU, використання пам'яті, стан процесу, тип терміналу та ім'я команди.
Ось пояснення того, що означає кожен зі цих стовпців:
PID: Цей стовпець показує унікальний ID процесу.
TTY: Цей стовпець показує тип терміналу, на який користувач увійшов.
ЧАС: Цей стовпець показує, скільки часу CPU використовується цим процесом у хвилинах та секундах.
CMD: Цей стовпець представляє ім'я команди, яка запустила цей процес.
Аналіз інформації, наданої командою ps, дає вам глибше розуміння поведінки вашої машини Linux.
Розширені методи ps для керування процесами за допомогою команди ps
Давайте дослідимо деякі розширені можливості команди ps та способи їх ефективного використання:
1. Сортування процесів
Команду ps aux можна використовувати для сортування результату за різними колонками. Наприклад, ви можете сортувати процеси за ID процесу або CPU, щоб побачити їх у потрібному порядку.
Ось приклад сортування процесів за ID процесу за допомогою ps aux:
ps aux –-sort pid
Команда head показує лише перші п'ять рядків результату.

2. Візуалізація дерева процесів
Якщо ви хочете побачити взаємозв'язок батько-дитина між процесами, можна використати команду ps з опцією forest.
ps -aux --forest

Щоб побачити відносини між процесами у вигляді дерева, можна також використати команду pstree. Вона створює вихідні дані, які легше розуміти й наочно показують ієрархію процесів. Введіть таку команду:
pstree [pid or username]
Передавши цій команді PID, ви вказуєте їй розглядати цей процес як корінь дерева.
3. Фільтрування процесів
Припустимо, ви хочете працювати з певною групою процесів, наприклад переглянути всі процеси одного користувача. Фільтрування процесів за ознакою можна зробити командою ps. У цьому прикладі ми відфільтрували процеси за ім'ям користувача.
ps -u [username]

Команда ps aux grep може фільтрувати процеси за будь-яким шаблоном або ключовим словом. Див. приклад нижче:

Ця команда спочатку виводить усі процеси, потім передає результат команді grep, яка фільтрує список за ID процесу. На зображенні вище ви можете бачити перелік усіх процесів, що мають цифру 15 у своїй інформації.
Для додаткової інформації про команду ps та її можливості прочитайте сторінку довідки. Ось команда для відображення довідки:
man ps
Управління пріоритетом завдань в Linux
Щоб краще пояснити, як працює управління процесами в Linux, потрібно також розглянути пріоритет процесу та як його змінити. Уявіть ситуацію, коли ви запускаєте кілька процесів, а CPU перевантажена завданнями. Якщо ви хочете правильно керувати ресурсами в цій ситуації, вам потрібно змінити пріоритет запущених завдань. Кожний процес в Linux має значення пріоритету. Це значення допомагає ядру визначати черговість завдань. Пріоритет змінюється від -20 до 19: 19 — найменш важливе завдання, -20 — найпріоритетніше. Процес з найвищим пріоритетом отримує більше часу CPU порівняно з іншими процесами. Значення пріоритету часто називають значеннями nice: чим нижче значення nice, тим вищий пріоритет.
Для ефективного розподілу системних ресурсів можна використати команди nice та renice.
Але перед зміною пріоритету процесів давайте розглянемо перший варіант використання команди ps.
- Відображення поточного пріоритету всіх процесів за допомогою команди ps:
Ця команда виводить усі процеси разом з їхніми ID (PID), назвами команд та поточним пріоритетом (значенням nice):
ps -eo pid,cmd,nice

- Запуск процесу з розпочатковим високим пріоритетом за допомогою команди nice:
Ви можете запустити процес із потрібним пріоритетом за допомогою такої команди:
nice -n [priority] [command]
Замініть [priority] на потрібне від'ємне значення пріоритету, а [command] — на команду, яку ви хочете виконати.
I'm ready to translate to Ukrainian. Please provide the English text you'd like me to translate.

- Зміна пріоритету вже запущеної команди:
renice -n [priority] -p [PID]
Замініть ID процесу того процесу, яким ви хочете маніпулювати, на [PID].
Якщо вам потрібна потужна машина Linux для виконання всіляких завдань, Linux VPS — найкраще рішення для вас. Cloudzy пропонує різні плани Linux VPS з попередньо встановленим дистрибутивом на ваш вибір. З безліччю переваг, таких як цілодобова підтримка, 30-денна гарантія повернення коштів і гарантія 99,95% безперервної роботи, Cloudzy зумів утримати низькі ціни. Наші ціни на плани Linux VPS починаються всього з 4,95 дол./місяць.
Отримайте економний або преміум Linux VPS для хостингу сайту чи віддаленого робочого столу за найнижчою ціною. VPS на базі Linux KVM для підвищеної ефективності, потужне залізо та сховище NVMe SSD для максимальної швидкості.
ДокладнішеВисновок
Висновок: вміння керувати процесами та контролювати систему — необхідна навичка для системних адміністраторів, користувачів Linux, які прагнуть дізнатися більше, та звичайних користувачів Linux. Вивчення можливостей команди ps полегшить вашу роботу з керування процесами. Тому в цій статті ми розглянули важливі випадки використання команди ps та надали читачам вступ до процесів Linux.
Часто задавані питання
Що таке команда ps aux у Linux?
Команда ps aux Linux — це часто використовувана команда в Linux для отримання інформації про запущені процеси. Вона надає детальний список процесів у зручному форматі, включаючи їхні ID процесів (PID), CPU та використання пам'яті, стани виконання та інші важливі деталі.
Які два типи процесів існують у Linux?
Процеси переднього плану та процеси фонового виконання. Процеси переднього плану займають термінал під час роботи й не дозволяють інші виконання. Процеси фонового виконання працюють у фоновому режимі й не займають весь термінал.
Як я можу переглянути список процесів, що працюють на моїй системі Linux?
Список процесів, що працюють на вашій системі Linux, можна отримати за допомогою команд ps, top або htop. Наприклад, команда Linux ps aux надає детальну інформацію про всі запущені процеси.