Европейский Университет в Санкт-Петербурге
Опубликован: 10.10.2005 | Доступ: свободный | Студентов: 1595 / 258 | Оценка: 4.30 / 3.85 | Длительность: 16:22:00
ISBN: 978-5-94774-820-8
Лекция 9:

Запуск и останов системы

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >

Программа init

С помощью программы init систему можно перевести в любой режим работы, часто эта программа используется для перехода в однопользовательский режим или перехода из него в многопользовательский. Для этого дается команда

init режим_работы

Кроме описанных выше режимов работы, можно указать режимы a, b, c и q. Режимы a, b, c - это псевдорежимы, они существуют только для того, чтобы можно было с помощью init запустить отдельные программы, которые отмечены в /etc/inittab как соответствующие данным режимам. Команда

init q

вызывает перечитывание процессом init файла /etc/inittab. Следовательно, если вы изменили этот файл и хотите, чтобы изменения оказали немедленное влияние на систему, следует дать команду init q.

Программа telinit является символической ссылкой на init , и ее используют для передачи команд запущенной в данный момент программе init .

В ответ на команду init 1 вы увидите нечто вроде:

INIT: New run level: 1
Changing to state 1.
Unmounting remote filesystems: /vol nfs done.
System services are now being stopped.
May 14 13:13:22 unknown /usr/sbin/vold[475]: 
	problem unmounting /vol;
Interrupted system call
<тут что-то еще....>
Killing user processes: done.
Change to state 1 has been completed.
Type control-d to proceed with normal startup,
(or give root password for system maintenance):

Вывод, сопровождающий выполнение команды, приведен не полностью. Обратите внимание на последние две строки; здесь требуется либо указать пароль привилегированного пользователя root, либо нажать Ctrl-D, в последнем случае произойдет обычная загрузка в состояние initdefault.

Команда halt

Для немедленной остановки системы (подобно shutdown -y -g0 ) можно использовать команду1В тексте мы употребляем слова "команда" и "программа", причем часто - как синонимы. Это не является ошибкой - большинство команд UNIX выполняются одноименными программами. halt. От shutdown она отличается тем, что не предупреждает интерактивно работающих пользователей о скорой остановке системы. Эту команду можно смело давать в однопользовательском режиме или для остановки сервера, на котором никто, кроме администратора, не работает интерактивно.

Команда halt перед остановкой выполняет запись кэшируемых данных на диск.

Команда reboot

Команда reboot обычно используется для завершения работы в однопользовательском режиме и перехода к многопользовательскому. Эта команда выполняется быстрее, чем shutdown, потому что она не выполняет скрипты останова ( /etc/rcN.d/K* ) и не посылает никаких сообщений пользователям. Команда reboot выполняет запись кэшируемых данных на диск, так же, как и halt.

С помощью reboot можно передать ключи загрузчику среды OpenBoot, например, для изменения конфигурации таблицы устройств следует дать команду

reboot -- -rs

Как видно из примера, чтобы отделить ключи самой reboot от тех, что будут переданы загрузчику, перед ключами последнего ставятся два дефиса подряд.

Команда poweroff

Команда poweroff переводит систему в режим выполнения 5 и эквивалентна init 5. Пользователи не оповещаются об изменении режима работы, скрипты завершения K* не выполняются, и в случае, если аппаратура компьютера поддерживает программное выключение питания, питание компьютера выключается.

Последняя функция на компьютерах x86 доступна не всегда (или недоступна вовсе), по крайней мере, ноутбук IBM ThinkPad 390X, который я использовал для эксперимента, без проблем выключался, работая под Windows XP и, даже не пытаясь выключаться под Solaris 9, выдавал такие же надписи об останове, что и по команде halt:

... syncing file systems... done
Type any key to continue

Аварийная остановка системы

В некоторых случаях операционная система перестает отвечать на запросы и не откликается даже на команду reboot. В таком случае говорят, что система "зависла". Это явление, надо признать, более знакомо пользователям Windows 98, нежели администраторам Solaris, но тем не менее и с последним такое случается.

Рекомендуют такую "зависшую" систему перезапустить, нажав Stop+A или L1+A (для платформы SPARC). Это должно вызвать передачу управления к firmware. На физических терминалах, подключенных к последовательным портам, для этой цели возможно использовать клавишу Break.

Некоторые версии OpenBoot поддерживают ряд клавиатурных команд (они вводятся нажатием комбинаций клавиш), которые изменяют поведение OpenBoot при загрузке. Эти клавиши надо нажимать сразу после включения системного блока и держать их несколько секунд до того, как мигнет светодиод на клавиатуре.

К этим клавиатурным командам (keyboard chords) относятся:

  • Stop - пропустить исполнение процедуры начальной инициализации компьютера POST (Power-on self test); некоторые системы SPARC по умолчанию и так пропускают исполнение POST, тогда для того, чтобы выполнить POST, следует нажать Stop+D ;
  • Stop+A - прерывание всех запущенных в настоящее время процессов и предоставление командной строки в среде OpenBoot;
  • Stop+D - включение режима диагностики (эквивалентно установке переменной diag-switch среды OpenBoot в значение true );
  • Stop+F - включение интерпретатора Forth на первом последовательном порту; для продолжения инициализации системы дайте команду exit ; используется при нарушениях работы оборудования;
  • Stop+N - переустановка всех переменных NVRAM в значения по умолчанию.

Для изменения комбинаций клавиш, назначенных клавиатурным командам, надо отредактировать файл /etc/default/kbd. В нем также можно разрешить или запретить клавиатурные команды. После модификации файла следует дать команду kbd -i для замены стандартных назначений на новые.

Следует отметить, что в зависимости от установок безопасности компьютера, изменение клавиатурных команд и доступ к командной строке OpenBoot могут быть запрещены, либо доступ к командной строке может предоставляться по паролю.

Ручная работа по включению и выключению системы

Как перезапустить зависшую систему

Если система безнадежно зависла, следует:

  • нажать Stop+A или L1+A (или другую комбинацию клавиш, если вы переопределили стандартные установки в /etc/default/kbd );
  • дождавшись приглашения ok, дать команду sync для синхронизации файловых систем (записи кэшированных данных на диски);
  • дождавшись сообщения syncing file systems... done, нажать Stop+A или L1+A еще раз;
  • дать команду reset в ответ на приглашение ok ;
  • после перезагрузки нелишне проверить, в какой режим работы загрузилась система:
    # who -r
    run-level 3 May 9 05:29 3 0 S

Если ответ вас удовлетворил, можно начинать работу.

Включение и выключение оборудования

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

При включении компьютера следует соблюдать такой порядок действий:

  • вначале включить периферийные устройства (принтеры, внешние диски и т.п.);
  • включить монитор;
  • включить системный блок (бывает, что он включается одной кнопкой с монитором, это допустимо).
< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Игорь Ермачков
Игорь Ермачков
Латвия, Рига
Андрей Мальщуков
Андрей Мальщуков
Россия