Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота3_2.doc
Скачиваний:
3
Добавлен:
15.11.2019
Размер:
179.71 Кб
Скачать

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

Команда renice, що мається в деяких версіях UNIX, дозволяє змінити пріоритет працюючого процесу. Формат цієї команди подібний формату команди nice:

renice -number PID

Для зміни пріоритету працюючого процесу необхідно знати його ідентифікатор, одержати який можна за допомогою розглянутої команди ps, наприклад, викликавши

ps -е | grep name

У даній команді необхідно замінити паті ім'ям цікавлячого вас процесу. Команда grep отфільтрує тільки ті записи, у яких буде зустрічатися ім'я потрібної команди, і ви зможете довідатися ідентифікатор її процесу. Якщо ви хочете змінити пріоритет усіх процесів користувача чи групи користувачів, у команді renice використовуйте ідентифікатор користувача чи групи.

Приклад використання renice, припустивши, що ім'я користувача рсосо:

$ ps -ef | grep $LOGNAME

рсосо 11805 11804 0 Dec 22 ttysb 0:01 sort sales.dat > sales.srt

рсосо 19955 19938 4 16:13:02 ttyp 0:00 grep рсосо

рсосо 19938 1 0 16:11:04 ttyp 0:00 bash

рсосо 19940 19938 42 16:13:02 ttyp 0:33 find . -name core -exec пп.{};

Тепер, щоб понизити пріоритет процесу find c ідентифікатором 19940, уведіть renice -5 19940

У випадку renice працюють того ж правила, що й у випадку nice.

• Ви можете використовувати renice тільки зі своїми процесами.

• Суперкористувач може застосувати renice до будь-якого процесу.

• Тільки Суперкористувач може підвищити пріоритет процесу.

Припинення процесу за допомогою команди kill

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

• Процес використовує занадто багато часу процесора й ресурсів комп'ютера.

• Процес працює занадто довго, не даючи очікуваних результатів.

• Процес виводить занадто багато інформації на екран чи у файл.

• Процес привів до блокування термінала чи іншої сесії.

• Через помилку оператора чи програми використовуються не ті файли чи параметри командного рядка.

• Подальше виконання процесу даремно.

Якщо процес працює не у фоновому режимі, натискання комбінації клавіш <Ctrl+c> повинно перервати його виконання, але, якщо процес фоновий, це не допоможе— перервати його виконання можна тільки за допомогою команди kill.

Нормальнеє завершення фонового процесу

Команда kill посилає сигнал, що вимагає від процесу завершення. Для цього використовуються дві форми:

kill PID(s)

kill -signal PID(s)

Для завершення процесу з ідентифікатором 123 просто введіть kill 123. Для того ж, щоб завершити процеси 123, 231 й 312, уведіть kill 123 231 312.

Опція -signal дозволяє домогтися більшого, ніж просте завершення процесу.

Наприклад, можна змусити процес перечитати конфігураційні файли, не припиняючи роботи. Список доступних сигналів можна одержати за допомогою команди kill -1. Однак звичайному користувачу, як правило, досить застосувати kill без указівки сигналу.

Примітка: Будьте дуже уважні при використовуванні команди kill і застосовуйте тільки коректний ідентифікатор процесу, інакше ви можете завершити не той процесе, що хотіли (завершення якого-небудь системного процесу може привести до самим неприємних наслідків). Памятайте, що, будучи системним адміністратором, ви маєте можливість завершити роботу будь-якого процесу.

При успішному завершенні процесу ніяке повідомлення не виводиться — процеси "вмирають мовчки". Повідомлення з'явиться при спробі завершити процесе, не маючи відповідних прав доступу, чи при спробі завершити неіснуючий процес.

Примітка:У більшості дистрибутивів Linux процесе можна завершувати не по ідентифікаційному номері, а по його імені, використовуючи команду killall.

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