Блог компанії 3v-Hosting

Жонглювання процесами — Використання Linux команди ps з прикладами

Адміністрування

9 хв.


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

 

 

Основні відомості про команду ps

 

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

 

 

Основний синтаксис:

Основний синтаксис команди ps включає вказівку різних параметрів та аргументів для налаштування виведення. Наприклад, проста команда ps без будь-яких опцій надає мінімальний набір інформації, включаючи ідентифікатор процесу (PID) та зв'язаний термінал.

$ps

    PID TTY          TIME CMD
 804679 pts/1    00:00:00 bash
3445818 pts/1    00:00:00 ps

 

Вихідні стовпці:

Виведення команди ps за замовчуванням зазвичай включає такі стовпці, як PID, TTY, TIME та CMD, що надають базову інформацію про кожен процес. Розуміння цих стовпців має вирішальне значення для ефективної інтерпретації результатів:
PID – ідентифікатор (номер) процесу в системі;
TTY - термінал виведення, пов'язаний з цим процесом
TIME – час роботи конкретного процесу
CMD - ім'я процесу

 

 

Вивчення опцій ps

 

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

 

Варіанти вибору процесу:

        -e: відображати інформацію про процеси інших користувачів.
        -u user: показати процеси для конкретного користувача.
        -p pid: відображає інформацію для певного ідентифікатора процесу.

 

Показати варіанти:

        ax: список усіх процесів у системі, незалежно від терміналу.
        aux: відображення докладної інформації, включаючи інформацію про користувача, використання процесора, пам'яті і т.д.

 

Сортування та форматування:

     --sort: Можливість сортувати процеси за різними критеріями, такими як завантаження процесора або час запуску.
     --format: Можливість налаштування виводу, вказавши стовпці, що відображаються.

 

 

 

Реальні приклади застосування команди ps

 

Розуміння практичного застосування команди ps необхідне ефективного адміністрування системи. Розгляньмо реальні приклади, щоб проілюструвати його використання.

 

Виявлення ресурсомістких процесів:

 

Використовуючи команду ps aux, адміністратори можуть визначати процеси, що надмірно споживають ресурси ЦП або пам'яті. Це має вирішальне значення для оптимізації продуктивності системи.

$ ps aux --sort=-%cpu | head

 

 

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

Щоб переглянути процеси для конкретного користувача, можна використати таку команду:

$ ps -u username

 

 

Моніторинг процесів у режимі реального часу:

Команду watch можна комбінувати із ps для моніторингу процесів у режимі реального часу. Особливо це корисно для відстеження змін за певний інтервал.

$ watch -n 1 'ps aux | grep process_name'

 

 

Розширені функції та варіанти використання

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

 

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

Команду ps можна використовувати з опцією H (або forest) для відображення ієрархічних відносин між батьківськими та дочірніми процесами.

$ ps aux --forest
...
root     2152218  0.0  0.0  13356  7248 ?        Ss    2023   0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root      804559  0.0  0.0  14716  8808 ?        Ss   Jan16   0:00  \_ sshd: user  [priv]
user+  804581  0.0  0.0  14716  5788 ?        S    Jan16   0:01      \_ sshd: user@pts/0
user+  804582  0.0  0.0   8012  3556 pts/0    Ss   Jan16   0:00          \_ -bash
root      804602  0.0  0.0   9960  3776 pts/0    S    Jan16   0:00              \_ su
root      804611  0.0  0.0   7160  3388 pts/0    S    Jan16   0:00                  \_ bash
root      804677  0.0  0.0  16292  5248 pts/0    S+   Jan16   0:13                      \_ mc
root      804679  0.0  0.0   7264  3932 pts/1    Ss   Jan16   0:00                          \_ bash -rcfile .bashrc
root     3449830  0.0  0.0  10264  3516 pts/1    R+   10:23   0:00                              \_ ps aux --forest
...

 

 

Угруповання процесів за сеансом:

Щоб відсортувати процеси за ідентифікатором сеансу, можна використовувати опцію --sid.

$ ps aux --sort=sid
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           2  0.0  0.0      0     0 ?        S     2023   0:02 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<    2023   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<    2023   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<    2023   0:00 [slub_flushwq]
root           6  0.0  0.0      0     0 ?        I<    2023   0:00 [netns]
...

 

 

Безперервний моніторинг із тимчасовими мітками:

Використання опції -O дозволяє включати тимчасові мітки у вихідні дані ps, забезпечуючи історичну перспективу активності процесу.

$ ps -O time -o command
    PID     TIME S TTY          TIME COMMAND                     COMMAND
 804679 00:00:00 S pts/1    00:00:00 bash -rcfile .bashrc        bash -rcfile .bashrc
3449472 00:00:00 R pts/1    00:00:00 ps -O time -o command       ps -O time -o command

 

 

Найкращі практики та міркування безпеки:

 

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

 

Проводьте егулярний аудит та моніторинг системи:

Реалізація регулярних перевірок за допомогою команди ps забезпечує раннє виявлення аномалій та потенційних загроз безпеці.

 

Обмежте доступ до виконання команди ps:

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

 

Налаштуйте інтеграцію із системними журналами:

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

 

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