Centos управління процесами - довідник манімейкера або народні посилання

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

Ви можете управляти тими процесами, які ви запустили. Додатково до цього, root може управляти всіма процесами в системі, навіть тими, які виконуються іншими користувачами. Процесами можна управляти і спостерігати за ними за допомогою спеціальних програм, а так само за допомогою деяких команд оболонки.

Іноді деякі програми виходять з під контролю і тоді вам потрібно "поставити їх на місце". Програма для такого виду адміністрування називається kill (1). Також її можна використовувати для управління процесами різними способами. Найочевиднішим способом використання kill є вбивання процесу (від англ. Kill - вбивати). Вам доведеться скористатися цією програмою в тому випадку, якщо програма вийшла з під контролю і починає використовувати багато системних ресурсів або якщо вас просто нудить від її роботи.

Щоб вбити процес, вам потрібно знати його PID або ім'я. Щоб дізнатися ідентифікатор, скористайтеся командою ps. описаної в попередньому розділі. Наприклад, щоб вбити процес 4747, вам потрібно виконати наступне:

Врахуйте, щоб вбити процес, ви повинні бути його власником. Це особливість системи безпеки. Якби вам дозволялося вбивати процеси інших користувачів, ви могли б здійснювати всілякі злочинні дії. Ну і, природно, root може вбити будь-який процес в системі.

Існує ще один різновид утиліти kill під назву killall (1). Ця програма повністю відповідає своїй назві (kill all - вбити всіх): вона вбиває всі працюючі процеси із заданим ім'ям. Якщо вам потрібно вбити всі процеси vim. ви можете набрати наступну команду:

Всі запущені вам процеси з ім'ям vim будуть вбиті. Виконавши цю команду під root 'ом, ви вб'єте також всі процеси vim. запущені користувачами системи. Це також є цікавий спосіб для викидання з системи всіх користувачів (включаючи самого вас):

Іноді звичайний kill не справляється з поставленим завданням. Певні процеси не будуть вмирати. Тоді вам потрібно використовувати більш сильний засіб. Якщо цей впертий PID 4747 не відповідає на ваш запит kill, ви можете виконати наступне:

Це напевно змусить процес 4747 померти. Те ж саме ви можете використовувати і з killall. В даному випадку ви просто відправляєте процесу інший сигнал. Звичайний виклик kill відправляє процесу сигнал SIGTERM (terminate), який повідомляє йому, що потрібно зупинити свою роботу, скинути буфери і вивантажити себе з пам'яті. kill -9 відправляє процесу сигнал SIGKILL (kill), який по суті просто вбиває його. Процесу не дозволяється "чисто" завершити свою роботу, і іноді це призводить до небажаних наслідків, таких як ушкодження даних. Нижче представлений повний список сигналів. Ви можете отримати цей список за допомогою наступної команди: