- •Лабораторна робота №2.
- •Процеси Linux
- •Робота з багатьма процесами
- •Планування запуску команд
- •Планування виконання за допомогою сron і crontab
- •Інформація про стан процесів
- •Моніторинг процесів за допомогою ps
- •Одержання додаткової інформації про процеси
- •Використання команди nohup
- •Зміна пріоритету команд за допомогою nice
- •Зміна пріоритету працюючого процесу за допомогою renice
- •Припинення процесу за допомогою команди kill
- •Нормальнеє завершення фонового процесу
- •Безумовне припинення фонового процесу
- •Завершення усіх фонових процесів
- •Хід роботи
- •Запуск команд у визначений час за допомогою команди at
- •Планування виконання за допомогою сron і crontab
Використання команди nohup
Звичайно дочірній процес припиняється після батьківського. Таким чином, якщо ви запустили фоновий процес, він буде припинений при вашому виході із системи. Для того щоб процес продовжував виконуватися навіть після вашого виходу із системи, застосовується команда nohup. Її просто варто помістити в початок командного рядка:
nohup sort sales.dat &
Ця проста команда змушує операційну систему ігнорувати ваш вихід з неї і продовжувати виконання доти, поки процес не закінчиться сам собою. Таким чином, ви запустите процес, що буде виконуватися тижнями, не вимагаючи вашого контролю. Природно, не варто так запускати процес, що може записувати дані на диск протягом цілого тижня.
Звичайно вивід запущеної за допомогою nohup команди перенаправляється у файл nohup.out, про що система чесно попереджає вас при запуску команди:
$ nohup sort sales.dat 6
1252
Sending output to nohup.out
$
Отже, відсортований файл і всі можливі в процесі роботи повідомлення про помилки після закінчення роботи виявляться у файлі nohup. out.
Приклад:
$ nohup sort sales.dat > sales.srt 6
1252
Sending output to nohup.out
$
У результаті виконання цієї команди всі повідомлення про помилки будуть спрямовані у файл nohup. out, але відсортований файл виявиться поміщеним у sales.srt.
Якщо ви застосовуєте канали при запуску програми за допомогою nohup, вона повинна використовуватися для запуску всіх команд у рядку:
'nohup sort sales.dat | nohup mailx -s"Sorted data" boss &
Зміна пріоритету команд за допомогою nice
Команда nice дозволяє запустити іншу команду з визначеним пріоритетом виконання, тим самим надаючи вам можливість визначати пріоритет при виконанні своїх задач. При звичайному запуску всі задачі мають той самий пріоритет і операційна система рівномірно розподіляє між ними процесорний час. Однак за допомогою nice ви можете понизити пріоритет якої-небудь "неспішної" задачі, надавши тим самим іншим задачам більше процесорного часу. Підвищити пріоритет тієї чи іншої задачі має право тільки суперкористувач.
Синтаксис використання nice має вид:
nice -number command
Рівень пріоритету визначається параметром number, при цьому більше його значення означає менший пріоритет команди. Значення за замовчуванням —10, і number являє собою число, на яке повинний бути зменшений пріоритет. Наприклад, якщо ви запускаєте процес сортування
sort sales.dat > sales.srt &
і хочете дати йому перевагу над іншим процесом, наприклад печатки, запустіть цей другий процесе зі зменшеним пріоритетом:
nice -5 lp mail list &
Для того щоб призначити процесу печатки найнижчий можливий пріоритет, уведіть
nice -10 lp mail_list &
Тільки суперкористувач може підвищити пріоритет того чи іншого процесу, застосовуючи для цього негативне значення аргументу. Максимально можливий пріоритет — 20; привласнити його процесу суперкористувач може за допомогою команди
nice —10 job &
Наявність амперсанта (&) у прикладі досить умовно — ви можете змінювати пріоритети як фонових процесів, так і процесів переднього плану.
