Знижка 50%. всі плани, обмежений час. Починаючи з $2.48/mo
залишилось 10 хв
Сервери та ОС

Освоєння керування процесами – команда Linux ps aux

Ада Лавгуд By Ада Лавгуд 10 хвилин читання Оновлено 11 липня 2024 р
Команда linux ps aux

У вашому веб-переглядачі відкрито принаймні п’ять інших вкладок, які намагаються знайти відповідь на проблему з 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. Однак результати процесу можна відобразити як стандартний вивід. Відображення результатів фонових процесів відбувається одночасно з результатами інших активних процесів. Тож ви можете бачити перебіг або результати фонового процесу, не перериваючи інших важливих дій.

Оскільки виконання широкого спектру завдань у Linux залежить від командного рядка, процеси переднього плану можуть бути проблемними, тоді як виконання процесів у фоновому режимі звільняє ваш термінал від роботи над іншими завданнями. Отже, розміщувати завдання переднього плану у фоновому режимі є доцільним. Для того, щоб відправити процес у фоновий режим ви повинні спочатку зупинити його виконання на передньому плані. Це робиться просто натисканням CTRL+Z. Потім, ввівши команду bg, завершений процес буде повторно запущено у фоновому режимі. Команда fg зверне процес і виведе його на передній план.

Статус процесу; Синтаксис, команди та інтерпретація результату

Ефективне керування процесами в Linux вимагає розуміння стану процесів, які можна контролювати за допомогою команди ps aux. Але перш ніж заглиблюватися в команду ps aux, давайте дізнаємося про різні статуси процесу. Хоча існує кілька типів процесів і станів процесів, ось таблиця найпоширеніших із них:

Статус процесу опис
Біг (R) Процес зараз запущений і займає ресурси ЦП.
спить Переривчастий (S) Процес очікує на певний вхід або подію для повторного запуску. Зараз він не використовує ресурси ЦП. Коли доступні ресурси або надходять сигнали, процес починається знову.
Безперебійний (D) Процес безперервного сну не використовує ресурси центрального процесора, як і процес, який перебуває в режимі сну. Єдина відмінність полягає в тому, що він не реагує на сигнали, а повертається до життя лише за наявності ресурсів.
Зупинено (T) Введення користувача або певна подія призупинили процес. Процес у зупиненому стані не використовує жодних ресурсів процесора.
Мертвий (X) Процес припинено і більше не існує.

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

Синтаксис і команди для отримання статусу процесу

Ви можете отримати статус процесу в Linux за допомогою базового синтаксису для команди ps:

ps [process name]

Існують також інші параметри, які використовуються з командою ps:

допоміжний: Цей параметр показує вичерпний список усіх процесів, запущених у системі. Він надає таку інформацію, як ідентифікатори процесів (PID), ідентифікатори батьківських процесів (PPID), використання ЦП і пам’яті, а також статуси процесів. Вихідні дані, надані командою ps aux, набагато акуратніші, легші для читання та містять багато кориснішої інформації, ніж базова команда ps.

ef: Цей параметр показує повноформатний перелік процесів із додатковими деталями, включаючи ієрархію процесів у вигляді деревоподібної структури.

l: Ця опція забезпечує довгий формат списку, що представляє більш детальну інформацію про процеси.

Розуміння результату

Коли ви виконуєте команду ps із потрібними параметрами, вона генерує вихідні дані, які представляють процеси, які зараз виконуються у вашій системі. Вихід складається зі стовпців, які показують різні атрибути процесу, включаючи ідентифікатор процесу (PID), ідентифікатор батьківського процесу (PPID), використання ЦП, використання пам’яті, стан процесу, тип терміналу та назву команди.

Ось пояснення значення кожного з цих стовпців:

PID: У цьому стовпці показано унікальний ідентифікатор процесу.

TTY: У цьому стовпці показано тип терміналу, до якого користувач увійшов.

ЧАС: Цей стовпець є індикатором того, скільки ЦП використовується цим процесом у хвилинах і секундах.

CMD: Цей стовпець представляє назву команди, яка запустила цей процес.

Аналіз інформації, наданої командою ps, дає вам глибше уявлення про поведінку вашої машини Linux.

Розширені методи керування процесами ps за допомогою команди ps

Давайте розглянемо деякі розширені функції команди ps і те, як їх можна ефективно використовувати:

1. Процес сортування

Команда ps aux може бути використана для сортування остаточного результату на основі різних стовпців. Наприклад, ви можете сортувати процеси за ідентифікатором процесу або використанням ЦП, щоб побачити їх у бажаному порядку.

Ось приклад сортування процесів на основі ідентифікатора процесу за допомогою ps aux:

ps aux –-sort pid

Команда head використовується лише для отримання перших п’яти рядків виводу.

ps aux sort pid

2. Візуалізація дерева процесів

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

ps -aux --forest

батьківсько-начірні відносини процесів Linux

Щоб побачити зв’язок між процесами у вигляді дерева, ви також можете скористатися командою pstree. Ця команда створить більш зрозумілий результат, який ідеально ілюструє ієрархію між процесами. Щоб скористатися цією командою, введіть таку команду:

pstree [pid or username]

Надаючи цій команді PID, ви вказуєте команді вважати цей процес коренем дерева.

3. Процеси фільтрації

Уявіть, що ви хочете працювати з певною групою процесів; наприклад, ви хочете перерахувати всі процеси одного з користувачів. Процеси фільтрації на основі характеристики можна виконати за допомогою команди ps. У цьому прикладі ми відфільтрували процеси на основі імені користувача.

ps -u [username]

фільтрація процесів Linux за допомогою команди ps

А команда ps aux grep може фільтрувати процеси на основі будь-якого шаблону чи ключового слова, яке ви надаєте команді. Подивіться на наведений нижче код як приклад:

приклад команди ps aux grep

Ця команда спочатку містить список усіх процесів і передає вихідні дані команді grep для фільтрації цього довгого списку на основі ідентифікатора процесу. На зображенні вище ви можете побачити список усіх процесів, які мають номер 15 у своїй інформації.

Щоб отримати додаткові відомості про команду ps та її можливості, ви можете прочитати сторінку посібника цієї команди. Наведений нижче код відобразить для вас сторінку посібника:

man ps

Керування пріоритетом завдань у Linux

Щоб краще пояснити, як насправді працює керування процесами в Linux, ми також повинні розглянути пріоритет процесу та те, як його змінити. Уявіть ситуацію, в якій ви запускаєте кілька процесів, а центральний процесор перевантажений завданнями. Якщо ви хочете, щоб ваші ресурси працювали належним чином у цій ситуації, вам потрібно змінити пріоритет запущених завдань. Кожен процес у Linux має значення пріоритету. Це значення допомагає ядру визначати пріоритети завдань. Номер пріоритету коливається від -20 до 19, де 19 є найменш важливим завданням, а -20 - найбільш терміновим. Процес із найвищим пріоритетом отримує більше процесорного часу порівняно з іншими процесами. Значення пріоритету часто називають «приємними» значеннями, при цьому нижчі приємні значення показують вищий пріоритет.

Ви можете використовувати команди nice та renice для ефективного розподілу системних ресурсів.

Але перш ніж змінювати пріоритет процесів, давайте розглянемо перший варіант використання команди ps.

  • Відображення поточного пріоритету всіх процесів за допомогою команди ps:

Ця команда містить список усіх процесів разом із їхніми ідентифікаторами (PID), назвами команд і поточним пріоритетом (приємне значення):

 

ps -eo pid,cmd,nice

Отримання пріоритету всіх процесів за допомогою команди ps

  • Запуск процесу з високим пріоритетом за замовчуванням за допомогою команди nice:

Ви можете запустити процес із бажаним пріоритетом за допомогою цієї команди:

nice -n [priority] [command]

Замініть [пріоритет] на потрібне від’ємне значення, що відповідає рівню пріоритету, а [команда] на команду, яку ви хочете виконати.

Ось приклад:

запуск процесу з високим пріоритетом за замовчуванням

  • Зміна пріоритету вже запущеної команди:
renice -n [priority] -p [PID]

Замініть ідентифікатор процесу, яким ви хочете керувати, на [PID].

Якщо ви хочете мати потужну машину Linux для виконання будь-яких завдань, a Linux VPS це найкраще рішення для вас. Cloudzy пропонує різні плани Linux VPS із попередньо встановленим дистрибутивом. Завдяки багатьом перевагам, таким як цілодобова підтримка, 30-денна політика повернення грошей і гарантія безвідмовної роботи на 99,95%, Cloudzy вдалося зберегти ціни на низькому рівні. Наші ціни на Linux VPS починаються лише від 4,95 доларів США на місяць.

Linux VPS хостинг

Отримайте собі економний або преміальний Linux VPS для розміщення вашого веб-сайту або віддаленого робочого столу за найнижчою ціною. VPS працює на Linux KVM для підвищення ефективності та працює на потужному апаратному забезпеченні з накопичувачем NVMe SSD для збільшення швидкості.

Детальніше

Висновок

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

FAQ

Що таке команда ps aux у Linux?

Команда ps aux Linux є поширеною командою в Linux для отримання інформації про запущені процеси. Він може надати вичерпний список процесів у зручному для користувача форматі, включаючи їхні ідентифікатори процесів (PID), використання ЦП і пам’яті, стан виконання та інші важливі деталі.

Які є два типи процесів у Linux?

Основні та фонові процеси. Процеси переднього плану займають термінал під час роботи та не дозволяють виконувати інші дії. Фонові процеси виконуються у фоновому режимі й не займають весь термінал.

Як я можу переглянути список процесів, запущених у моїй системі Linux?

Список процесів, запущених у вашій системі Linux, можна отримати за допомогою таких команд, як ps, top або htop для перегляду. Наприклад, команда Linux ps aux надає детальну інформацію про всі запущені процеси.

Поділіться

Більше з блогу

Продовжуйте читати.

Найкращі самостійні програми, які можна запускати з Cosmos Cloud, зображення обкладинки з панелями програм навколо інформаційної панелі Cosmos.
Сервери та ОС

Найкращі автономні програми, які можна запускати з Cosmos Cloud: файли, медіа, паролі, автоматизація та багато іншого!

Можливо, ви налаштували Cosmos Cloud і тепер хочете побачити, які програми добре підходять до нього, а можливо, ви ще навіть не визначилися з Cosmos і просто хочете побачити, наскільки він підходить для вашої роботи.

Нік СільверНік Сільвер 16 хв читання
Обкладинка Portainer проти Cosmos Cloud для керування програмами Docker із гібридною схемою налаштування та неоновими операціями проти блоків доступу.
Сервери та ОС

Portainer проти Cosmos Cloud: найкраще підходить для керування програмами Docker

Якщо ви вже знаєте Docker і просто хочете мати чистіший спосіб запускати зростаючий стек програм, ось коротка відповідь на Portainer проти Cosmos Cloud. Portainer є сильнішим вибором для режисури

Нік СільверНік Сільвер 14 хв читання
Функціональна графіка Cosmos Cloud проти CasaOS проти Umbrel показує три самостійні шляхи в одному абстрактному світі хмарної мережі.
Сервери та ОС

Cosmos Cloud проти CasaOS проти Umbrel: яка самостійна платформа підходить для ваших налаштувань?

Коротка відповідь полягає в тому, що CasaOS все ще є найпростішим місцем для початку, Umbrel має найчистіше кероване відчуття, а Cosmos Cloud має більше сенсу, якщо ви хочете жорсткіше контролювати домен

Нік СільверНік Сільвер 11 хвилин читання

Готові до розгортання? Від $2,48/міс.

Незалежна хмара, з 2008 року. AMD EPYC, NVMe, 40 Гбіт/с. 14-денне повернення грошей.