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

Як ви думаєте, операційна система Linux може автоматично подбати сама про себе? Коли працює все нормально або вам не потрібні ніякі нестандартні можливості - цілком так. Але іноді може знадобитися ваше втручання в її роботу.

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

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

  • Перегляд запущених процесів
  • Перегляд інформації про процеси
  • Пошук процесів в Linux
  • Зміна пріоритету процесів
  • завершення процесів
  • Обмеження пам`яті доступної процесу

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

Що таке процес?

Почнемо з того, що розберемося в термінах. По суті, процес - це кожна програма. Як я вже говорив для кожної програми, що запускається створюється окремий процес. В рамках процесу програмі виділяється процесорний час, оперативна пам`ять і інші системні ресурси. У кожного процесу є свій ідентифікатор, Proccess ID або просто PID, по ним, найчастіше і визначаються процеси Linux. PID визначається не випадково, як я вже говорив, програма ініціалізації отримує PID 1, а кожна наступна запущена програма - на одиницю більше. Таким чином PID призначених для користувача програм доходить вже до кількох тисяч.

Насправді, процеси Linux не настільки абстрактні, якими вони вам зараз здаються. Їх цілком можна спробувати помацати. Відкрийте ваш файловий менеджер, перейдіть в кореневий каталог, потім відкрийте папку / proc. Бачите тут купу номерів? Так ось це все - PID всіх запущених процесів. У кожній з цих папок знаходиться вся інформація про процес.

Наприклад, подивимося папку процесу 1. В папці є інші під каталоги і багато файлів. Файл cmdline містить інформацію про команду запуску процесу:

$ / Usr / lib / systemd / systemd

Оскільки у мене використовується система ініціалізації Systemd, то і перший процес запускається для неї. За допомогою каталогу / proc можна зробити все. Але це дуже незручно, особливо з огляду на кількість запущених процесів в системі. Тому для реалізації потрібних завдань існують спеціальні утиліти. Перейдемо до розгляду утиліт, які дозволяють реалізувати управління процесами в Linux.

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

У Linux є дуже велика кількість утиліт для вирішення різних завдань з управління процесами. Це і такі багатофункціональні рішення, як htop, top, а також прості утиліти, наприклад, ps, kill, killall, who і т д. Я не буду розглядати в цій статті графічні утиліти, і top теж розглядати не буду. Перше бо надто просто, друге - тому що htop краще. Ми зупинимося на роботі з програмою htop і її аналогами в формі утиліт в стилі GNU, одна утиліта - одна функція.




Давайте встановимо htop, якщо вона у вас ще не встановлена. В Ubuntu це робиться так:

$ Ps aux

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

$ Ps aux --sort = -% cpu

ps1

Як поля для сортування можуть бути використані пріоритети процесів Linux або будь-які інші параметри. Також ви можете обрізати висновок, якщо не потрібно виводити всю інформацію:

$ pstree

pstree

Пошук процесів в Linux




Список процесів, це добре. Але іноді, коли який-небудь процес завис і потрібно вбити процес Linux або нам потрібно провести з ним будь-які дії, потрібно виділити цей процес зі списку, дізнатися його PID і інформацію про нього.

Щоб знайти процес linux в htop можна використовувати кнопку F3. Натисніть F3 і наберіть потрібне слово. Далі щоб знайти наступний примірник натискайте F2 або Esc для завершення пошуку:

htop4

Відео: Управління процесами в linux

Для пошуку процесів в htop можна використовувати також фільтр htop. Натисніть F4, введіть слово і будуть виведені тільки процеси linux, ім`я яких включає це слово.

htop6

Відео: LPIC-1 Курс Linux для системного адміністратора: управління процесами Linux

В утиліті ps фільтрації немає, але зате ми можемо використовувати утиліту grep, перенаправивши висновок ps на неї щоб знайти процес linux:

$ Nice -n 10 apt-get upgrade

Або змінити пріоритет для вже існуючого на його pid:

$ Kill -TERM 1943

Також можна знищити процес по імені:

sergiy hard nproc 20

Подивитися обмеження для певного процесу ви можете в папці proc:

Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 204800 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 23562 23562 processes
Max open files 1024 4096 files
Max locked memory 18446744073708503040 18446744073708503040 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 23562 23562 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us

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

Ось опції команди:

  • -S - м`яке обмеження
  • -H - жорстке обмеження
  • -a - вивести всю інформацію
  • -f - максимальний розмір створюваних файлів
  • -n - максимальна кількість відкритих файлів
  • -s - максимальний розмір стека
  • -t - максимальну кількість процесорного часу
  • -u - максимальну кількість запущених процесів
  • -v - максимальний обсяг віртуальної пам`яті

Відео: 03 - Програмування Linux. Процеси і потоки

Наприклад, ми можемо встановити нове обмеження для кількості відкритих файлів:

$ Ulimit -Sn

Встановимо ліміт оперативної пам`яті:

Поділися в соціальних мережах:

Схожі
Управління службами linuxУправління службами linux
Що робить ядро ​​linuxЩо робить ядро ​​linux
Lame - linux administration made easyLame - linux administration made easy
Як приховати процес в linuxЯк приховати процес в linux
Завантаження диска linuxЗавантаження диска linux
Список процесів linuxСписок процесів linux
Установка драйверів в linuxУстановка драйверів в linux
Віртуальна флешка в linuxВіртуальна флешка в linux
Процес завантаження linuxПроцес завантаження linux
Як вбити процес linuxЯк вбити процес linux
» » Управління процесами в linux