CMD Master
Назад до блогу
•Оновлено•Arnošt Havelka

Як переглянути запущені процеси в Bash за допомогою ps

Переглядайте процеси через ps у Bash, читайте PID і власника, перевіряйте окремий процес та обирайте top, коли потрібне спостереження наживо.

Почати інтерактивний урок
Як переглянути запущені процеси в Bash за допомогою ps

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

Почніть із поточного термінала

Спочатку виконайте команду без параметрів:

ps

Точні заголовки залежать від операційної системи, але коротке виведення зазвичай містить:

  • PID: ідентифікатор процесу, який використовують такі засоби, як kill.
  • TTY: термінал, пов'язаний із процесом.
  • TIME: процесорний час, використаний процесом.
  • CMD або COMMAND: запущена програма.

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

Спробуйте команду

Перегляньте процеси, пов'язані з цим терміналом.

Складіть команду
ps[arguments]
ps
Термінал
~$ps
PID TTY TIME CMD 1234 pts/0 00:00:01 bash 2345 pts/0 00:00:00 ps 3456 pts/0 00:00:05 node 4567 pts/0 00:00:02 worker

Перегляньте процеси всієї системи

Для повнішого знімка використовуйте:

ps -ef

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

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

Якщо потрібні конкретні поля, запитайте їх явно:

ps -eo pid,ppid,user,stat,%cpu,%mem,command

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

Перевірте окремий PID перед використанням

Якщо інший засіб повідомив PID 123, перегляньте цей процес безпосередньо:

ps -p 123 -o pid,ppid,user,stat,etime,command

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

Використовуйте top, коли показники змінюються з часом

ps показує один момент. Використовуйте top, щоб стежити за змінами використання процесора чи пам'яті:

top

Натисніть q, щоб вийти з top. Живий перегляд допомагає помітити процес, який знову й знову піднімається на початок списку, тоді як ps краще підходить для фіксації точного моменту або перевірки відомого PID. Жоден із засобів автоматично не визначає, чи безпечно зупиняти процес: це залежить від його власника, команди та призначення.

Перевірка знань

1 / 1

Яке значення визначає конкретний процес, який потрібно перевірити?

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

Посилання

Ці посилання на документацію надають авторитетну інформацію про команди, використані в цій статті.

Далі

Як безпечно знайти й зупинити завислий процес у Bash

Перевірте процес і його PID, спочатку надішліть SIGTERM, звірте результат і залиште SIGKILL лише для процесів, що не завершуються коректно.