Як завершити процес у Linux
Ефективне управління процесами є ключовим завданням для всіх, хто використовує віртуальний сервер, наприклад, ті, що пропонує AlexHost. Розуміння того, як завершувати процеси в Linux, допомагає оптимізувати продуктивність системи, вирішувати проблеми і підтримувати стабільність сервера. У цій статті ми розглянемо різні методи завершення процесів в Linux, надаючи детальні інструкції та поради як для початківців, так і для досвідчених користувачів.
Що таке процес у Linux?
Процес у Linux – це запущений екземпляр програми. Кожного разу, коли ви виконуєте команду або програму, вона створює процес, який використовує системні ресурси, такі як процесор і пам’ять. На віртуальних серверах, таких як AlexHost, управління ресурсами має вирішальне значення, особливо при розміщенні декількох веб-сайтів, додатків або сервісів. Якщо процес поводиться неправильно або споживає надмірні ресурси, вам може знадобитися завершити його, щоб підтримувати оптимальну продуктивність сервера.
Навіщо завершувати процес?
Є кілька причин, чому вам може знадобитися завершити процес на віртуальному сервері AlexHost:
- Високе завантаження процесора або пам’яті: Деякі процеси можуть споживати надмірну кількість ресурсів, сповільнюючи роботу інших додатків або призводячи до збоїв.
- Програми, щоне реагують на запити: Деякі програми можуть зависати, не реагувати на запити або зациклюватися в нескінченному циклі.
- Налагодження та розробка: Під час розробки програмного забезпечення вам може знадобитися зупинити процеси для тестування або усунення несправностей.
- Оптимізація ресурсів: На віртуальному сервері завершення непотрібних або надлишкових процесів забезпечує ефективне використання виділених ресурсів.
Як створити список процесів у Linux
Щоб завершити процес, спочатку потрібно визначити його ідентифікатор процесу (PID). Це можна зробити за допомогою таких команд, як ps aux
ps aux
Ця команда виводить список усіх запущених процесів разом з їхніми PID, правами власності та використанням ресурсів.
Ви також можете скористатися такими інструментами, як top, htop, які надають інформацію про запущені процеси в реальному часі і дозволяють завершити процес безпосередньо з інтерфейсу.
* Зверніть увагу на стовпчик PID. PID (Process ID) в Linux – це унікальний ідентифікатор, який присвоюється кожному запущеному процесу в системі
Способи завершення процесу в Linux
Після того, як ви визначили PID процесу, який ви хочете завершити, ви можете скористатися різними командами для його завершення.
Команда kill
Команда kill є найпоширенішим інструментом для знищення процесів у Linux. Вона надсилає сигнал процесу, і за замовчуванням надсилає сигнал TERM, щоб завершити роботу процесу у зручний для вас спосіб.
Вбити процес за PID – kill PID
Наприклад:
kill 12
Команда pkill
pkill – це потужна команда, яка використовується у Unix-системах, таких як Linux і macOS, для завершення процесів. Хоча вона виконує ті самі функції, що і команда killall, вона пропонує більш розширені можливості, зокрема, щодо пошуку за шаблонами і гнучкості при ідентифікації процесів. Основна відмінність між killall і pkill полягає у тому, що pkill підтримує більш детальний контроль над вибором процесів, що полегшує завершення конкретних процесів на основі різних критеріїв.
Як працює pkill:
Базовий синтаксис для використання pkill наступний:
Де ім’я_процесу – ім’я процесу, який ви хочете завершити. Ця команда надсилає сигнал (за замовчуванням SIGTERM) усім процесам з іменами, що відповідають заданому шаблону. Наприклад, якщо ви хочете зупинити всі екземпляри Firefox, ви використовуєте:
Це призведе до завершення усіх процесів, які відповідають шаблону firefox. Якщо запущено декілька процесів зі схожими іменами, pkill буде спрямовано на всі з них. Однак, якщо вам потрібно бути більш точним, ви можете застосувати додаткові прапорці або шаблони, щоб звузити вибір.
Додаткові можливості pkill:
Відповідність шаблону: На відміну від killall, який строго відповідає повній назві процесу, pkill підтримує розширені шаблони регулярних виразів (regex). Це дозволяє вам завершувати процеси на основі більш складних угод про імена. Наприклад, якщо ви хочете знищити процеси з іменами, що містять “fire”, ви можете скористатися
Параметр -f вказує pkill порівнювати шаблон з повним командним рядком (а не лише з назвою процесу).
Пошук за іншими атрибутами: pkill також може шукати процеси за такими атрибутами, як користувач, який запускає процес, ідентифікатор процесу (PID) або ідентифікатор сеансу. Деякі з найкорисніших параметрів включають
За користувачем: якщо ви хочете знищити процеси, що належать певному користувачеві, ви можете скористатися параметром -u:
За PID: якщо у вас є PID певного процесу, ви можете вказати його безпосередньо:
За групою: Ви можете вибрати процеси, які належать до певної групи, за допомогою параметра -G:
Обробка сигналів: За замовчуванням pkill надсилає процесам сигнал SIGTERM (завершення), але ви можете змінити цей сигнал за допомогою параметра -SIGNAL. Наприклад, для надсилання сигналу SIGKILL (примусове завершення), який негайно зупиняє процеси, не даючи їм змоги очиститися, ви можете скористатися:
Це особливо корисно, якщо процес не реагує на сигнал завершення за замовчуванням.
Пробний запуск: Якщо ви хочете побачити, на які процеси вплине ваша команда pkill без їх завершення, ви можете скористатися параметром -l (список). У результаті буде перераховано усі процеси, які відповідають заданому шаблону:
Висновок:
pkill є універсальним і потужним інструментом для завершення процесів у Unix-подібних операційних системах. Здатність pkill виконувати розширений пошук за шаблонами, зіставляти процеси за користувацькими або іншими атрибутами і надсилати користувацькі сигнали робить його кращим варіантом для системних адміністраторів і користувачів, яким потрібен тонкий контроль над керуванням процесами. Ефективно використовуючи pkill, ви можете оптимізувати управління системними ресурсами, автоматизувати контроль процесів і ефективніше вирішувати проблеми.