Linux-сервер своими руками
Шрифт:
В системе используется системный файл расписания — это /etc/crontab (см. листинг 5.1).
Директива run-part
Еще одним способом планирования задач является использование демона atd. Этот демон используется для отложенного выполнения заданий. Для постановки заданий в очередь используются команды at и batch. Чтобы добавить задание в очередь используйте команду:
После этого введите все команды, которые хотите выполнить. Для окончания ввода нажмите Ctrl+D. Более подробно о формате задания времени и даты вы можете прочитать в справочной системе. Например, для выполнения команд в 13:00 введите команду:
Для просмотра очереди заданий, введите команду atq. В результате будут выведены задания для пользователя, запустившего команду. При запуске программы суперпользователем будет выведен список заданий для всех пользователей. Удалить задание вы можете командой atrm.
5.5. Уровни выполнения.Программа init
ОС Linux имеет шесть уровней выполнения, а также три уровня выполнения по требованию.
Программа init переключает систему в нужный режим работы (на нужный уровень выполнения), и ее имеет право использовать только пользователь root. Для переключения на уровень n достаточно ввести команду:
Иногда, при небольшом изменении файла /etc/inittab, нужно заново перечитать таблицу инициализации (inittab). Для этого воспользуйтесь командой:
Помните, что вы в любой момент можете изменить файл /etc/inittab и перечитать его заново командой
Для перехода на первый уровень выполнения можно также использовать параметр s программы
Описание уровней приведено в табл. 5.4.
Уровни выполнения Таблица 5.4
Уровень | Описание |
---|---|
0 | Останов системы |
1 | Административный (однопользовательский) режим. Обычно используется пользователем root для восстановления системы после сбоя |
2 | Многопользовательский режим, но без использования сети |
3 | Многопользовательский режим, допускается работа в сети |
4 | Не используется |
5 | Многопользовательский режим. Поддержка сети. Автоматический запуск системы X Window |
6 | Перезагрузка системы |
Файл /etc/inittab описывает, какие процессы должны запускаться во время загрузки и на протяжении нормальной работы системы. Программа init переключает уровни выполнения системы. Корректными номерами уровней системы являются 0…6, а также А, В и С.
Каждая строка файла /etc/inittab должна быть записана в формате:
Поле «Id» (идентификатор) — уникальная последовательность из четырех символов (в старых дистрибутивах длина имени идентификатора ограничена двумя символами).
Поле «уровни выполнения» — перечень уровней выполнения, для которых будет выполнено указанное действие.
Поле «действие» — задает действие, которое будет выполнено.
Поле «процесс» — определяет процесс, который будет выполнен.
В качестве значений поля «уровни_выполнения» могут быть указаны номера уровней выполнения без каких-либо разделителей. Например, значение данного поля 1235 означает, что указанное действие будет применено к уровням 1, 2, 3 и 5. В качестве дополнительных уровней, которые называются уровнями по требованию (ondemand), могут быть указаны уровни А, В и С.
В качестве действия может быть указано одно из действий, описанных в табл. 5.5
Действия над процессами, задаваемые в файле /etc/inittab Таблица 5.5
Действие | Описание |
---|---|
wait | Процесс будет запущен на одном из указанных уровней выполнения, и программа init будет ждать его завершения |
respawn | Процесс будет перезапущен после его завершения |
once | Процесс будет запущен всего один раз на одном из указанных уровней выполнения |
boot | Процесс будет запущен во время загрузки системы. Поле «уровни_выполнения» будет проигнорировано |
bootwait | То же, что и boot, но программа init будет ждать завершения процесса |
off | Не выполняет никаких действий |
ondemand | Процесс будет запущен в режиме по требованию, то есть он будет выполнен, когда будет вызван один из уровней по требованию (А, В, С) |
initdefault | Определяет уровень выполнения по умолчанию. Если он не указан, при загрузке программа init попросит вас ввести уровень выполнения |
sysinit | Процесс будет запущен во время загрузки, но перед выполнением процессов, которые запускаются с помощью действия boot или bootwait |
powerwait | Процесс будет запущен, когда исчезнет напряжение в сети. Естественно, для корректной работы этой записи нужен источник бесперебойного питания, от которого система и получит уведомление об исчезновении напряжения. Программа init будет ждать завершения этого процесса |
powerfail | То же, что и powerwait, но программа init не будет ждать завершения процесса |
powerokwait | Процесс будет запущен сразу после того, как программа init получит сведения о том, что питание восстановлено |
ctrlaltdel | С помощью этого действия можно установить реакцию системы на нажатие комбинации клавиш Ctrl+Alt+Del |
Теперь рассмотрим листинг обычного файла /etc/inittab (см. листинг 5.2).
Рассмотрим подробно приведенный пример. Самая первая строка определяет уровень выполнения по умолчанию. Очень рекомендую вам установить это значение. Во-первых, вводить уровень загрузки каждый раз при запуске системы не очень удобно. Во-вторых, если не установлен уровень выполнения по умолчанию, система не сможет запускаться автоматически: при загрузке она будет ждать ввода номера уровня выполнения. Для загрузки системы подойдут два уровня: или 3, или 5. Я рекомендую использовать третий уровень выполнения, использовать уровень выполнения 5 нужно только в том случае, если вы хотите, чтобы система X Window запускалась автоматически при старте системы.