Список процесів linux
На сайті вже є кілька статей про процеси Linux, в яких докладно описано як ними управляти або як завершити один або групу процесів, але це ще не все. Щоб правильно управляти процесами і орієнтуватися в них вам потрібно навчитися аналізувати список процесів Linux, розуміти що значить кожний пункт і навіщо він потрібен.
У цій статті ми детально розглянемо як подивитися список процесів, розберемо якими бувають процеси, чому так відбувається і що з цим робити.
Що таке процес?
Процес Linux - це екземпляр програми, запущений в пам`яті. Всі процеси можна розділити на звичайні і фонові. Більш докладно про це написано в статті управління процесами Linux. Linux - це розрахована на багато користувачів система, кожен користувач може запускати одні і ті ж програми, і навіть один користувач може захотіти запустити кілька екземплярів однієї програми, тому ядру потрібно якось ідентифікувати такі однотипні процеси. Для цього кожному процесу присвоюється PID (Proccess Identificator).
Кожен з процесів може перебувати в одному з таких станів:
- запуск - процес або вже працює, або готовий до роботи і чекає, коли йому буде дано процесорний час;
- очікування - процеси в цьому стані очікують якої-небудь події або звільнення системного ресурсу. Ядро ділить такі процеси на два типи - ті, які очікують звільнення апаратних засобів і призупинення за допомогою сигналу;
- зупинено - зазвичай, в цьому стані знаходяться процеси, які були зупинені за допомогою сигналу;
- зомбі - це мертві процеси, вони були зупинені і більше не виконуються, але для них є запис в таблиці процесів, можливо, через те, що у процесу залишилися дочірні процеси.
А тепер давайте перейдемо ближче до практики і поговоримо про те, як дізнатися запущені процеси linux.
Список процесів Linux
Найпопулярніші команди для вирішення цього завдання - це ps, top і htop. Останні дві команди ми вже розглядали в попередніх статтях, власне, вони інтерактивні і з ними у вас не виникне проблем. Зараз же хотілося б зупинитися більш детально на ps. Спочатку розглянемо загальний синтаксис команди, тут все дуже просто:
$ ps опції
$ ps опції | grep параметр
У другому варіанті ми використовуємо утиліту grep для того, щоб відібрати потрібні нам процеси за певним критерієм. Тепер розглянемо опції утиліти. Вони діляться на два типи - ті, які йдуть з дефісом Unix і ті, які використовуються без дефіса - BSD. Краще користуватися тільки опціями Unix, але ми розглянемо і одні і інші. Зауважте, що при використанні опцій BSD, висновок утиліти буде організований в BSD стилі.
- -A, (a) - вибрати всі процеси;
- -a - вибрати всі процеси, крім фонових;
- -d, (g) - вибрати всі процеси, навіть фонові, крім процесів сесій;
- -N - вибрати всі процеси крім зазначених;
- -З - вибирати процеси по імені команди;
- -G - вибрати процеси по ID групи;
- -p, (p) - вибрати процеси PID;
- --ppid - вибрати процеси по PID батьківського процесу;
- -s - вибрати процеси по ID сесії;
- -t, (t) - вибрати процеси по tty;
- -u, (U) - вибрати процеси користувача.
Опції форматування:
- -з - відображати інформацію планувальника;
- -f - вивести максимум доступних даних, наприклад, кількість потоків;
- -j, (j) - вивести процеси в стилі Jobs, мінімум інформації;
- -M, (Z) - додати інформацію про безпеку;
- -o, (o) - дозволяє визначити свій формат виведення;
- --sort, (k) - виконувати сортування по зазначеній колонці;
- -L, (H)- відображати потоки процесів в колонках LWP і NLWP;
- -m, (m) - вивести потоки після процесу;
- -V, (V) - вивести інформацію про версію;
- -H - відображати дерево процесів linux;
Тепер, коли ви знаєте синтаксис і опції, можна перейти ближче до практики і подивитися запущені процеси в Linux. Щоб просто подивитися процеси в linux в поточній оболонці використовуйте команду без параметрів:
$ Ps -AВсі процеси, включаючи фонові і лідери груп:
$ Ps -fПри використанні опції -f команда видає такі колонки:
- UID - користувач, від імені якого запущено процес;
- PID - ідентифікатор процесу;
- PPID - ідентифікатор батьківського процесу;
- C - відсоток часу CPU, використовуваного процесом;
- STIME - час запуску процесу;
- TTY - термінал, з якого запущений процес;
- TIME - загальний час процесора, витрачений на виконання процесора;
- CMD- команда запуску процесора;
- LWP - показує потоки процесора;
- PRI - пріоритет процесу.
Наприклад, також можна вивести детальну інформацію про всі процеси:
$ Ps -FeЯкщо ви хочете отримати ще більше інформації, використовуйте замість -f опцію -l:
$ Ps -fu rootЗа допомогою опції -H можна відобразити дерево процесів:
$ Ps -fp 1Через кому можна вказати кілька PID:
$ Ps -fC chromeДалі можна використовувати опцію -L щоб відобразити інформацію про процеси:
$ Ps -o pid, commВи можете вибрати такі колонки для відображення: pcpu, pmem, args, comm, cputime, pid, gid, lwp, rss, start, user, vsize, priority. Для зручності перегляду можна відсортувати висновок програми по потрібної колонці, наприклад, перегляд процесів linux, які використовують найбільше пам`яті:
$ Ps -FA --sort pcpuЩе одна опція - M, яка дозволяє вивести інформацію про права безпеки і прапори SELinux для процесів:
$ Ps -e | wcМи розглянули всі основні можливості утиліти ps. Далі ви можете поекспериментувати з її параметрами і опціями щоб знайти потрібні комбінації, також можна спробувати застосувати опції BSD.
висновки
Команда ps може бути дуже корисною якщо система перевантажена і вам необхідно терміново дізнатися запущені процеси linux щоб звільнити пам`ять або ресурси процесора. Інтерактивні засоби не завжди можуть допомогти, тому що вони споживають занадто багато ресурсів. З іншого боку ps дає більшу гнучкість оскільки утиліта має безліч опцій і параметрів. У всякому разі тепер ви знаєте як вивести список процесів linux. Якщо залишилися питання, питайте в коментарях!
- Команда qprocess - відобразити інформацію про процеси в windows
- System tuner pro
- Як знайти вірус у списку процесів windows
- Програми стеження за комп`ютером linux
- Процеси windows. Як знайти і видалити вірусний процес?
- Як видалити користувача в linux
- Як приховати процес в linux
- Як подивитися потоки процесу в linux
- Як звільнити пам`ять linux
- Як вбити процес linux
- Дізнаємося хто використовує мережу в linux
- Вимкнення linux з командного рядка
- Команда taskkill - завершити процес.
- Системи ініціалізації linux
- Групи користувачів linux
- Робота з powershell linux
- Завантаження диска linux
- Використання оперативної пам`яті в linux
- Управління процесами в linux
- Lame - linux administration made easy
- Opera для linux