Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы_пособие.doc
Скачиваний:
33
Добавлен:
03.05.2015
Размер:
353.79 Кб
Скачать

6.2. Управление процессами

Предположим, что неправильно написанная программа тормозит работу всей системы. Несложно установить идентификатор этого процесса с помощью утилит topилиps. Для остановки процесса используется командаkill. Синтаксис ее таков:

kill [-sig] <идентификатор процесса>, где

sig ‑ номер сигнала. Sig = 15 означает программное (нормальное) завершение процесса, номер сигнала 9 ‑ уничтожение процесса, а 1 ‑ прерывание и перезапуск. По умолчанию sig = 9. Пользователь с низким приоритетом может прервать процессы, связанные только с его терминалом.

Программа killне просто прерывает процессы. Она представляет собой сигнальный механизм, посредством которого процессы могут передавать команды друг другу.

Приоритет выполнения процесса можно поменять с помощью команды renice. Установить уровень приоритетности процесса на этапе его запуска можно с помощью командыnice. Приоритет процесса в FreeBSD представляет собой целое число в диапазоне от -20 до 20, причем наиболее высокое значение -20. Увеличение номера приоритета приводит к понижению приоритета, присвоенного процессу. Увеличить приоритет процесса может только администратор системы.

Примечание:в Linux номер приоритета находится в диапазоне от 0 до 39, где значение 0 представляет собой наивысший приоритет.

Примеры:

renice -5 1836- команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным 5.

renice --5 1836 - команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным -5.

nice -10 ls -lустановка номера приоритета, командеls -lравным 10.

6.3. Запуск заданий по расписанию

В ОС Unix существует возможность запускать программы пользователя в указанное им время. Для этого используется программа cron(CommandRunON).

Сronявляется непрерывно работающим фоновым процессом (такие процессы в Unix называютсядемонами) и проверяет свои входные файлы (crontab-файлы) каждую минуту.

Существует глобальный файл crontab (/etc/crontab) и каталог (/var/cron/tabs), в котором пользователи могут создавать собственные файлыcrontab.

Настройка cron

Для начала нужно создать сценарий, который будет запускаться по расписанию, например /home/user/script.sh. Этот файл должен иметь права на чтение и выполнение (r+x) для владельца файла.

Далее необходимо выполнить команду crontab -e. Откроется текстовый редактор vi, где можно вводить текст задания для cron. Задания пишутся по одному в строке, после которой нажимается клавиша Enter. В начале строки находятся пять обязательных полей для указания периодичности выполнения задания, а затем следует команда или файл скрипта, который нужно запускать:

поле1 поле2 поле3 поле4 поле5 команда

Значения первых пяти полей:

  • минуты — число от 0 до 59;

  • часы — число от 0 до 23;

  • день месяца — число от 1 до 31;

  • номер месяца в году — число от 1 до 12;

  • день недели — число от 0 до 7 (0–Вс, 1–Пн, 2–Вт,…, 7–Вс).

Для каждого конкретного параметра можно задать несколько значений через запятую. Например, если в поле «часы» написать 1,4,22, то задание будет запущено в 1 час ночи, в 4 часа утра и в 22 часа. Можно задать интервал —4-9будет означать, что программу нужно запускать каждый час в период с 4 до 9 часов включительно. Символ '*' означает «все возможные значения». Например, указание '*' в поле «часы» будет означать «запускать каждый час». Символ '/' служит для указания дополнительной периодичности задания. Например, '*/3' в поле «часы» означает «каждые три часа».

Примеры:

#Выполнять скрипт /home/user/script.shкаждые три часа #во вторник и в пятницу.

0 */3 * * 2,5 /home/user/script.sh

# Выполнять задание в 18 часов 7 минут 13 мая если это #пятница

7 18 13 5 5 /home/www/myscript.sh

# Выполнять задание раз в час в 0 минут

0 */1 * * * /home/www/myscript.sh

# Выполнять задание каждые семь часов в 0 минут

0 */7 * * * /home/www/myscript.sh

# Выполнять задание по воскресеньям в 10 час 30 минут

30 10 * * 0 /home/www/myscript.sh

crontab–l‑ просмотр установленных файловcrontab;

crontab-r‑ удаление своего файлаcrontab.

Для однократного запуска задания по времени предназначена команда at. Более подробно о нейможно узнать в документации.