Управління процесами

Управління процесами в Ubuntu Linux

Управління процесами в Ubuntu Linux
Управління процесами в Linux - важлива тема для вивчення та розуміння, оскільки це багатозадачна операційна система, яка має безліч процесів, що тривають одночасно. Linux надає багато інструментів для управління процесами, таких як перелік запущених процесів, процеси вбивства, моніторинг використання системи тощо. У Linux кожен процес представлений своїм ідентифікатором процесу (PID). Є деякі інші атрибути процесу, такі як ідентифікатор користувача та ідентифікатор групи, якщо користувач або група запускає процес. Іноді вам потрібно вбити або взаємодіяти з процесом, тому ви повинні знати, як керувати цими процесами, щоб ваша система працювала безперебійно. У Linux процесами можна керувати за допомогою таких команд, як ps, pstree, pgrep, pkill, lsof, top, nice, renice і kill, тощо.

Процеси

Запуск екземпляра програми називається процесом. У Linux, ідентифікатор процесу (PID) використовується для представлення процесу, який є характерним для кожного процесу. Існує два типи процесів,

Фонові процеси

Фонові процеси запускаються в терміналі та запускаються самі собою. Якщо ви запустите процес у терміналі, його вивід буде відображатися у вікні терміналу, і ви можете взаємодіяти з ним, але якщо вам не потрібно взаємодіяти з процесом, ви можете запустити його у фоновому режимі. Якщо ви хочете запустити процес у фоновому режимі, просто додайте знак «&» в кінці команди, і він почне працювати у фоновому режимі; це заощадить ваш час, і ви зможете розпочати інший процес. Для переліку процесів, що працюють у фоновому режимі, використовуйте команду 'jobs.'Він відображатиме всі запущені процеси у фоновому режимі.

Наприклад, оновлення - це тривалий процес у Linux. Це займає занадто багато часу, і якщо ви хочете займатися іншими справами під час оновлення системи, використовуйте фонову команду.

[захищено електронною поштою]: ~ $ sudo apt-get upgrade -y &

Він почне працювати у фоновому режимі. Тим часом ти можеш взаємодіяти з іншими програмами. Ви можете перевірити, скільки та які процеси працюють у фоновому режимі, ввівши цю команду.

[захищено електронною поштою]: ~ $ вакансій
[1] + Запуск sudo apt-get upgrade -y &

Процеси переднього плану

Усі процеси, які ми запускаємо в терміналі, за замовчуванням виконуються як процеси на передньому плані. Ми можемо керувати ними за допомогою команд переднього та заднього плану.

Ви можете вивести будь-який фоновий процес, перелічений у робочих місцях, на перший план, ввівши команду 'fg', а потім номер фонового процесу.

[захищено електронною поштою]: ~ $ fg% 1
sudo apt-get upgrade -y

І якщо ви хочете перенести цей процес у фоновий режим, введіть цю команду.

[захищено електронною поштою]: ~ $ bg% 1

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

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

[захищено електронною поштою]: ~ $ ps u
КОРИСТУВАЧ PID% CPU% MEM VSZ RSS TTY STAT ПОЧАТОК КОМАНДИ
Джим 1562 0.0 0.0 164356 6476 tty2 Ssl + 13:07 0:00 оболонка
Джим 1564 5.2 0.9 881840 78704 tty2 Sl + 3:07 13:13 dauth
Джим 2919 0.0 0.0 11328 4660 балів / 0 Ss 13:08 0:00 баш
Джим 15604 0.0 0.0 11836 3412 балів / 0 R + 17:19 0:00 ps u
... відрізати ..

У стовпці користувача відображається ім'я користувача у наведеній вище таблиці, а PID - ідентифікатор процесу. Ви можете використовувати PID, щоб убити або надіслати сигнал вбивства процесу. % CPU показує відсоток процесора процесора, а% MEM - використання оперативної пам'яті. Щоб убити процес, введіть.

[захищено електронною поштою]: ~ $ kill [ідентифікатор процесу (PID)]

або

[захищено електронною поштою]: ~ $ kill -9 [ідентифікатор процесу (PID)]

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

[захищено електронною поштою]: ~ $ ps aux | менше

Якщо ви хочете переставити стовпці, ви можете зробити це, додавши прапор -e для переліку всіх процесів і -o для вказівки на стовпці за ключовими словами в команді ps.

[захищено електронною поштою]: ~ $ ps -eo pid, user, uid,% cpu,% mem, vsz, rss, comm
PID USER UID% CPU% MEM VSZ RSS КОМАНДА
1 корінь 0 0.1 0.1 167848 11684 систематизовано
3032 джим 1000 16.5 4.7 21744776 386524 хром
... відрізати ..

Параметри команди ps.

Параметр u використовується для переліку процесів користувачами.

[захищено електронною поштою]: ~ $ ps u

Параметр f використовується для відображення повного списку.

[захищено електронною поштою]: ~ $ ps f

Параметр x використовується для відображення інформації про процес без терміналу.

[захищено електронною поштою]: ~ $ ps x

Параметр e використовується для відображення розширеної інформації.

[захищено електронною поштою]: ~ $ ps e

параметр використовується для переліку всіх процесів з терміналом.

[захищено електронною поштою]: ~ $ ps a

Параметр v використовується для відображення формату віртуальної пам'яті.

[захищено електронною поштою]: ~ $ ps v

Прапори для команди ps.

-Прапор e використовується для перегляду кожного процесу в системі.

[захищено електронною поштою]: ~ $ ps -e

-Прапор u використовується для перегляду процесів, що виконуються як root.

[захищено електронною поштою]: ~ $ ps -u

-Прапор f використовується для повного переліку процесів.

[захищено електронною поштою]: ~ $ ps -f

-o прапор використовується для переліку процесів у потрібному стовпці.

[захищено електронною поштою]: ~ $ ps -o
pstree

pstree - це ще одна команда для переліку процесів; він показує вихідні дані у деревному форматі.

[захищено електронною поштою]: ~ $ pstree

Параметри команди pstree

-п використовується для сортування процесів за ПІД.

[захищено електронною поштою]: ~ $ pstree -n

-H використовується для виділення процесів.

[захищено електронною поштою]: ~ $ pstree -H [PID]
[захищено електронною поштою]: ~ $ pstree -H 6457

-a використовується для показу вихідних даних, включаючи аргументи командного рядка.

[захищено електронною поштою]: ~ $ pstree -a

-g використовується для відображення процесів за ідентифікатором групи.

[захищено електронною поштою]: ~ $ pstree -g

-s використовується для посіву дерева або конкретного процесу.

[захищено електронною поштою]: ~ $ pstree -s [PID]
[захищено електронною поштою]: ~ $ pstree -s 6457

[ім'я користувача] використовується для показу процесів, що належать користувачеві.

[захищено електронною поштою]: ~ $ pstree [ім’я користувача]
[захищено електронною поштою]: ~ $ pstree jim
pgrep

За допомогою команди pgrep ви можете знайти запущений процес на основі певних критеріїв. Ви можете використовувати повне ім’я або абревіатуру процесу для пошуку або за іменем користувача чи іншими атрибутами. Команда pgrep виконує наступний шаблон.

[захищено електронною поштою]: ~ $ Pgrep [опція] [шаблон]
[електронна пошта захищена]: ~ $ pgrep -u jim chrome
Параметри команди pgrep

-i використовується для пошуку з урахуванням регістру

[захищено електронною поштою]: ~ $ Pgrep -i firefox

-d використовується для обмеження виводу

[захищено електронною поштою]: ~ $ Pgrep -u jim -d:

-u використовується для пошуку процесу, що належить користувачеві

[електронна пошта захищена]: ~ $ Pgrep -u jim

-a використовується для переліку процесів поряд із їхніми командами

[захищено електронною поштою]: ~ $ Pgrep -u jim -a

-c використовується для показу кількості підбираючих процесів

[захищено електронною поштою]: ~ $ Pgrep -c -u jim

використовується для переліку процесів та їх назви

[захищено електронною поштою]: ~ $ Pgrep -u jim -l
pkill

За допомогою команди pkill ви можете надіслати сигнал запущеному процесу на основі певних критеріїв. Ви можете використовувати повне ім’я або абревіатуру процесу для пошуку або за іменем користувача чи іншими атрибутами. Команда pgrep виконує наступний шаблон.

[захищено електронною поштою]: ~ $ Pkill [Параметри] [Шаблони]
[захищено електронною поштою]: ~ $ Pkill -9 хром
Параметри команди pkill

-сигналу використовується для передачі сигналу e.g. SIGKILL, SIGTERM тощо.

[захищено електронною поштою]: ~ $ Pkill --signal SIGTERM vscode

-HUP використовується для перезавантаження процесу

[захищено електронною поштою]: ~ $ Pkill -HUP syslogd

-f використовується для вбивства процесів на основі повного командного рядка.

[захищено електронною поштою]: ~ $ Pkill -f “пінг 7.7.7.7 ”

-u використовується для вбивства всіх процесів, якими володіє користувач.

[захищено електронною поштою]: ~ $ Pkill -u jim

-i використовується для нечутливого до випадків вбивання процесу за допомогою pkill.

[захищено електронною поштою]: ~ $ Pkill -i firefox

-9 використовується для надсилання сигналу вбивства.

[захищено електронною поштою]: ~ $ Pkill -9 хром

-15 використовується для надсилання сигналу завершення.

[захищено електронною поштою]: ~ $ Pkill -15 vlc
lsof (Список відкритих файлів)

Ця утиліта командного рядка використовується для переліку файлів, відкритих кількома процесами. І як ми знаємо, всі системи UNIX / Linux розпізнають все як файл, тому зручно використовувати команду lsof для переліку всіх відкритих файлів.

[захищено електронною поштою]: ~ $ lsof

У наведеній вище таблиці команди lsof FD представляє опис файлу, cwd - поточний робочий каталог, txt означає текстовий файл, mem - файли, що відображаються в пам'яті, mmap - пристрої, що відображаються в пам'яті, REG - звичайний файл, DIR - каталог, rtd означає кореневий каталог. Є й інші варіанти, якими можна скористатися з командою lsof.

Параметри команди lsof.

-c використовується для переліку відкритих файлів за назвою їх процесу.

[захищено електронною поштою]: ~ $ lsof -c chrome

-u використовується для переліку відкритих файлів користувачем.

[захищено електронною поштою]: ~ $ lsof -u jim

-i використовується для переліку процесів, що виконуються на порту.

[захищено електронною поштою]: ~ $ lsof -i

+D використовується для переліку відкритих файлів у каталозі.

[захищено електронною поштою]: ~ $ lsof + D / home /

-стор використовується для переліку відкритих файлів процесом.

[захищено електронною поштою]: ~ $ lsof -p 1342

Перерахування та управління процесом за допомогою верхньої команди

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

Введіть команду вгорі, щоб перерахувати запущені процеси.

[захищено електронною поштою]: ~ $ top
Завдання: всього 291, 1 біг, 290 спальних, 0 зупинених, 0 зомбі
% Процесорів: 2.3us, 0.3sy, 0.0ні, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0ст
Мб пам’яті: 7880.Загалом 6, 1259.9 безкоштовно, 3176 використано, 3444.4 баф / кеш
Заміна міб: 2048.Всього 0, 2048.0 безкоштовно, 0.0 використано. 4091.8 скористатися Mem
PID КОРИСТУВАЧ PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
3241 джим 20 0 20.7г 33512 10082 S 1.7 4.2 0:54.24 хром
3327 джим 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 хром
2920 джим 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 хром
3423 джим 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 хром
3030 джим 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 хром
3937 джим 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 хром
1603 джим 20 0 825608 67532 40416 S 0.3 0.8 3:13.52 Xorg
1756 джим 20 0 4154828 257056 10060 S 0.3 3.2 5:53.31 гном+
1898 джим 20 0 289096 29284 5668 S 0.3 0.4 1:06.28 фузума
3027 джим 20 0 587580 14304 75960 S 0.3 1.8 9:43.59 хром
3388 джим 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 хром
3409 джим 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 хром
3441 джим 20 0 16.5г 156396 89700 S 0.3 1.9 0:25.70 хром
.. .відрізати .. .

Ви також можете виконати деякі дії за допомогою команди top, щоб внести зміни в запущені процеси; ось список нижче.

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

Убити процес у верхній частині: Натисніть k і напишіть ідентифікатор процесу, який потрібно вбити. Потім введіть 15 або 9, щоб вбити нормально або негайно; Ви також можете вбити процес за допомогою команди kill або killall.

Відмовтесь від процесу вгорі: Натисніть р і напишіть ПІД процесу, який потрібно відмінити. Він попросить вас ввести PID процесу, а потім значення оцінки, яку ви хочете надати цьому процесу, від -19 до 20 (-19 означає найвищу важливість і 20 означає найменшу важливість).

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

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

Запущені процеси відображаються з обліковими записами користувачів в алфавітному порядку. Ви можете сортувати процеси за будь-якими заголовками полів, такими як процесор, пам'ять тощо., просто натисніть на них, і вони будуть відсортовані; наприклад, клацніть на CPU, щоб побачити, який процес споживає найбільше потужності CPU. Щоб керувати процесами, клацніть на них правою кнопкою миші та виберіть параметр, який ви хочете зробити з процесом. Щоб керувати процесом, виберіть наступні опції.

Вбивство процесу за допомогою kill та killall

kill, а команда killall використовується для вбивства / завершення запущеного процесу. Ці команди також можуть бути використані для надсилання дійсного сигналу до запущеного процесу, наприклад, як сказати процесу продовжувати, закінчувати або перечитувати конфігураційні файли тощо. Сигнали можна писати обома способами цифрами або іменами. Нижче наведено деякі загальновживані сигнали.

Опис номера сигналу

SIGHUP 1 Виявляє сигнал зависання на керуючому терміналі.
SIGINT 2 Інтерпретується з клавіатури.
SIGQUIT 3 Вийдіть з клавіатури.
SIGILL 4 Незаконні вказівки.
SIGTRAP 5 Використовується для трасування трапеції.
SIGABRT 6 використовується для переривання сигналу переривання (3).
SIGKILL 9 Використовується для надсилання сигналу вбивства.
SIGTERM 15 Використовується для надсилання сигналу завершення.
SIGCONT 19,18,25 Використовується для продовження процесу, якщо він зупинений.
SIGSTOP 17,19,23 Використовується для зупинки процесів.

Різні значення SIGCONT і SIGSTOP використовуються в різних операційних системах Unix / Linux. Для отримання детальної інформації про сигнали типу man 7 сигнальний термінал.

Використання команди kill для надсилання сигналу для обробки за допомогою PID.

Зверніть увагу на процес, до якого ви хочете надіслати сигнал вбивства. Ви можете знайти ідентифікатор процесу (PID) за допомогою команди ps або top.

PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
7780 джим 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 зверху

Найвищий процес займає 33.3% процесора. Якщо ви хочете вбити цей процес, щоб заощадити використання процесора, ось кілька способів завершити цей процес за допомогою команди kill.

[захищено електронною поштою]: ~ $ вбити 7780
[захищено електронною поштою]: ~ $ kill -15 7780 або $ kill -SIGTERM 7780
[захищено електронною поштою]: ~ $ kill -9 7780 або $ kill -SIGKILL 7780

Використання команди killall для надсилання сигналів процесу за іменем.

За допомогою команди killall вам не потрібно шукати ідентифікатор процесу; Ви можете надіслати процесу вбивства сигнал за іменем, а не за ідентифікатором процесу. Це також може вбити більше процесів, ніж ви хочете, якщо ви не будете обережні, наприклад.g., “Killall chrome” знищить усі хромовані процеси, включаючи ті, які ви не хочете вбивати. Іноді корисно вбивати однойменні процеси.

Як і команда kill, ви можете вводити сигнали за іменем або за номером у команді killall. Убити будь-який запущений процес за допомогою команди killall; Вам потрібно лише ввести його ім’я та сигнал, який Ви бажаєте надіслати. e.g., надіслати сигнал вбивства до firefox за допомогою команди killall, напишіть команду нижче.

[захищено електронною поштою]: ~ $ killall -9 firefox

або

[захищено електронною поштою]: ~ $ killall SIGKILL хром

Зміна пріоритету процесу за допомогою nice та renice

Кожен процес у вашій системі Linux має відмінне значення і становить від -19 до 20. Він вирішив, який процес отримає більше доступу до процесора в системі. Чим нижче значення nice, тим більше доступу процес має до процесора. Як -16 приємних значень мають більше доступу до центрального процесора, ніж 18 приємних значень. Тільки користувач із правами root може присвоїти негативне значення nice. Звичайний користувач може призначити значення "nice" лише від 0 до 19. Звичайний користувач може призначати лише вищі приємні значення та за власними процесами. Користувач root може встановити будь-яке приємне значення для будь-якого процесу.

Якщо ви хочете надати процес, більш доступний для використання процесора, призначивши приємне значення, введіть наступну команду.

[захищено електронною поштою]: ~ $ nice +3 chrome

І відновіть процес

[захищено електронною поштою]: ~ $ renice -n -6 3612

Висновок

Ось посібник з управління вашою системою Linux за допомогою ps, top, lsof, pstree, pkilll, kill, killall, nice, renice тощо. Деякі процеси споживають більшу частину використання центрального процесора та оперативної пам'яті; знання того, як ними управляти, збільшує швидкість та продуктивність вашої системи та дає вам краще середовище для ефективнішого запуску будь-яких процесів.

Найкращі лабораторні ігри Oculus App
Якщо ви є власником гарнітури Oculus, то вам потрібно дізнатися про бокове завантаження. Бокове завантаження - це процес встановлення негарнітного вмі...
Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
5 найкращих аркадних ігор для Linux
В наш час комп’ютери - це серйозні машини, що використовуються для ігор. Якщо ви не можете отримати новий високий бал, ви зрозумієте, що я маю на уваз...