В Linux. 2 Приобретение и инсталляция Linux. 3 Учебник по Linux 4 Администрирование системы. 5 The X window System. 6 Работа в сети
Вид материала | Учебник |
Содержание4.3 Выключение системы. 4.3.1 Файл /etc/inittab. |
- RH253 Сетевые службы Red Hat Linux и администрирование безопасности, 45.9kb.
- Документация Calculate Linux, 12378.73kb.
- Программы повышения квалификации ункит 1- «Linux для начинающих» Цель, 11.83kb.
- Концепция развития спо в РФ 2 История Linux, 105.81kb.
- Gnu/Linux, 51.18kb.
- Лекция 17. Операционная система Linux, 126.24kb.
- Исследование возможностей ос linux для приложений реального времени с обработкой разнородной, 98.25kb.
- Windows против Linux, 88.72kb.
- Учебный план курса "Базовая поддержка и администрирование Linux" Цель дать знания, 34.75kb.
- Исследование возможностей операционной системы Linux На примере операционной системы, 748.67kb.
4.3 Выключение системы.
Выключить Linux не так просто. Не забывайте, что никогда нельзя просто выключить питание или нажать кнопку "reset" во время работы системы. Ядро отслеживает диск при вводе-выводе с помощью буферов. Если вы перезагружаете систему, не дав шанса ядру переписать буфера на диск, вы можете попортить файловые системы. Тем не менее, переводчик лично знает прекрасных и обаятельных ребят, которые работая системными администраторами одного университета, выключают систему именно так. Должен заметить, что тот факт, что их сервер до сих пор работает, говорит не об квалификации, а о высокой устойчивости Linux, а то, что они до сих пор работают системными администраторами говорит только о том, что они нравятся администрации ВУЗа, а не об их знаниях.
Необходимы и другие меры предосторожности при выключении. Всем процессам посылается сигнал, который позволяет им красиво умереть (записав, что надо и закрыв все файлы и т.д.). Файловые системы для безопасности размонтируются. Если вы желаете, система может также предупредить пользователей, что предстоит выключение, чтобы дать им шанс тоже (красиво) выйти из системы.
Простейший способ выключения, это использование команды shutdown. Формат команды:
shutdown time warning-message
Здесь time задает время выключения системы (в формате hh:mm:ss или на русском чч:мм:сс), а warning-message задает сообщение, выдаваемое на терминалы всех пользователей перед выключением. Вы можете просто указать время (time) как ``now'', что приведет к безотлагательному выключению. Опция -r приведет к перезагрузке после выключения.
Например, выключить систему в 8:00 вечера можно командой:
# shutdown -r 20:00
Команда halt может инициировать немедленное выключение без посылки предупреждающих сообщений или предоставления паузы перед выключением. halt полезна, если вы единственный пользователь системы и хотите выключить систему и вырубить питание.
ВНИМАНИЕ! На выключайте электропитание и не перезагружайте ее, пока не увидите на консоли сообщение:
The system is halted.
Важно cделать выключение "чисто", используя команды shutdown или halt. В некоторых системах нажатие ctrl-alt-del будет перехвачено системой и приведет к ее выключению, но в других системах использование "затычки для вулкана" приведет к немедленной перезагрузке системы и может быть причиной крупных неприятностей.
4.3.1 Файл /etc/inittab.
Немедленно после начальной загрузки Linux, когда ядро смонтирует корневую файловую систему, оно запустит самую первую программу системы: init. Эта программа ответственна за старт сценариев запуска системы, и приводит систему из состояния начальной загрузки в обычное многопользовательское состояние. init также порождает login: оболочки для всех tty устройств на системе, и выполняет другие действия по запуску и парковке системы.
После запуска init остается спокойно работать в фоновом режиме, в случае необходимости он меняет состояние системы. Имеется много деталей, о которых программа init должна позаботиться. Эти задачи определены в файле /etc/inittab. Пример /etc/inittab приведен ниже.
Неправильное изменение файла /etc/inittab может предотвратить Вашу регистрацию в системе. По крайней мере, при изменении файла /etc/inittab, сделайте резервную копию оригинала, и позаботьтесь о наличии аварийно-спасательной дискеты. Впрочем, о ней надо позаботится в любом случае.
# inittab Этот файл описывает, как процесс INIT конфигурирует
# систему на каждом уровне работы (run-level).
#
# Версия: @(#)inittab 2.04 17/05/93 MvS
# 2.10 02/10/95 PV
#
# Автор: Miquel van Smoorenburg,
# Переработано: Patrick J. Volkerding,
# Дополнительные изменения: Robert Kiesling,
#
# Уровень по умолчанию
id:3:initdefault:
# Инициализация системы (запускается при загрузке системы)
si:S:sysinit:/etc/rc.d/rc.S
# Скрипт, который запускается в пользовательском режиме (уровень 1)
su:1S:wait:/etc/rc.d/rc.K
# Скрипт, который запускается в многопользовательском режиме
rc:23456:wait:/etc/rc.d/rc.M
# Что делать при нажатии комбинации Ctrl-Alt-Del
ca::ctrlaltdel:/sbin/shutdown -t5 -rfn now
# При уровне 0 система останавливается
l0:0:wait:/etc/rc.d/rc.0
# При уровне 6 система перезагружается
l6:6:wait:/etc/rc.d/rc.6
# Что делать при перебое в питании (выгрузка системы в режиме с
# одним пользователем)
pf::powerfail:/sbin/shutdown -f +5 "THE POWER IS FAILING"
# Если питание успело восстановиться, прекратить выгрузку системы
pg:0123456:powerokwait:/sbin/shutdown -c "THE POWER IS BACK"
# Если питание восстановилось в режиме с одним пользователем,
# то вернуться к многопользовательскому режиму
ps:S:powerokwait:/sbin/init 5
# Команды getty в многопользовательском режиме на консолях,
# подключенных к последовательным портам
#
# ВНИМАНИЕ: приведите эти команды в соответствие с
# вашими командами getty, иначе вы не сможете
# войти в систему!!!
#
# ВНИМАНИЕ: аргументы команды `agetty': скорость, порт
# аргументы команды `getty_ps': порт, скорость, `gettydefs'
c1:1235:respawn:/sbin/agetty 38400 tty1 linux
c2:1235:respawn:/sbin/agetty 38400 tty2 linux
c3:1235:respawn:/sbin/agetty 38400 tty3 linux
c4:1235:respawn:/sbin/agetty 38400 tty4 linux
c5:1235:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
# Последовательные порты (serial lines)
# s1:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt100
s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
# Подключения через модем (dialup lines)
d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100
# Уровень 4 раньше использовался только для систем X Window.
# Потом было обнаружено, что этот уровень зацикливает скрипт init,
# так что load avg все время остается равным по меньшей мере 1.
# Таким образом, теперь есть один процесс getty, открытый на
# tty6. Надеемся, что этого никто не заметит. ;)
# Кроме того, не так уж плохо иметь одну текстовую консоль
# на случай, если что-либо случится с X.
x1:4:wait:/etc/rc.d/rc.4
# Конец файла /etc/inittab
При запуске системы /etc/inittab запускает 6 виртуальных консолей, и выдает запрос login: на модем на порте /dev/ttyS0 и на символьный терминал, подключенный через RS-232 к последовательному интерфейсу /dev/ttyS1.
init проходит через несколько уровней выполнения (run levels ), каждый из которых соответствует определенному состоянию системы. Уровень 1 ставится немедленно после начальной загрузки системы, уровни 2 и 3 нормальные многопользовательские режимы работы системы, уровень 4 запускает X Window System с менеджером дисплея X xdm, уровень 6 перезагружает систему. Уровни выполнения указываются для каждой команды во втором элементе каждой строки файла /etc/inittab.
Например, строка:
s2:12345:respawn:/sbin/agettн -L 9600 ttyS1 vtlOO
выведет запрос login на последовательный терминал для уровней выполнения 1-5. ``s2'' перед первым двоеточием символический идентификатор, используемый внутри init. respawn является ключевым словом init, которое часто используется с последовательными терминалами. Если после некоторого времени программа agetty, которая ведает входом через терминал, не получает ввода с терминала, она завершается. ``respawn'' предписывает init повторно выполнить agetty, для обеспечения постоянной возможности входа в систему через терминал. Остальные параметры передаются прямо agetty и определяют оболочку, запускаемую при входе в систему, скорость последовательной линии, последовательное устройство и тип терминала, заданный в /etc/termcap или /etc/terminfo.
Программа /sbin/agetty обрабатывает много деталей, связанных с терминальным вводом-выводом в системе. Есть несколько различных версий, которые обычно используются на Linux системах. Они включают mgetty, psgetty, или простую программу getty.
В случае такой строки в файле /etc/inittab:
d1:12345:respawn:/sbin/agetty -mt50 35400,19200,9500,2400,1200 ttySO vtl00
которая позволяет пользователям войти через модем, связанный с последовательным устройством /dev/ttyS0, параметры ``-mt60'' для /sbin/agetty позволяют системе использовать все скорости модема, которые использует вызывающий абонент, и прерывать связь, если соединение не установлено через 60 секунд. Поддерживаемые модемом скорости перечисляются в командной строке так же, как скорости для последовательной линии или тип терминала. Конечно, оба модема должны поддерживать скорость до которой договорились машины в момент установления соединения.
Много важных деталей не рассмотрено в данном разделе. Задачи /etc/inittab занимают объем с хорошую книгу (может, я и соберусь ее написать). Подробности можно найти на man-страницах по программам init и agetty, а также в Linux Documentation Project's Serial HOWTO, поискать которое можно по адресам, приведенным в Приложении A.