Во-первых, Solaris относится к System V системам, и поэтому процедуры
его запуска и остановки, а также файлы конфигурации и системные
скрипты, используемые для этих процедур, в корне отличаются от таковых
в системах
Во-вторых, Solaris отличается от собратьев по ветви System V наличием
специального режима работы системы, который называется s или
S. Ниже этот режим описан подробнее. В большинстве систем System V
остальные семь режимов работы (0-6) имеют аналогичное назначение.
Некоторые системы, например, многие из систем Linux, имеют несколько
иную структуру каталогов системных скриптов. Так, в Solaris скрипты
находятся в /etc/rc0.d, /etc/rc1.d и т.д., а в Linux – в /etc/rc.d/rc0/, /etc/rc.d/rc1/ и т.д. Однако, для того, чтобы уточнить местоположение
этих скриптов в любой из систем System V, достаточно изучить man .
В-третьих, Solaris обладает самой большой коллекцией программ для
изменения режима работы системы: .
В других системах не всегда есть полный набор этих программ, однако, в
системах System V всегда присутствуют программы и . Они
всегда имеют одинаковое назначение, независимо от названия и поставщика
ОС, хотя их ключи иногда могут несколько отличаться.
Повторимся еще раз: общие принципы загрузки и man , man .
Начиная с Solaris 10, в Solaris появилась новая подсистема , svcadm и svccfg.
В одной и той же компьютерной системе может понадобиться
выполнять совершенно разные
Для того, чтобы системе было легче переключаться между разными наборами программ, которые используются для разных типов задач, была придумана концепция режимов работы системы. Любой UNIX ветви System V, в том числе и Solaris, может работать в одном из семи режимов. Каждый режим характеризуется своим назначением, которое определяет набор программ, выполняющихся в этом режиме. В Solaris используется восемь режимов (0-6 и S или s, режимы s и S – это одно и то же).
Режим работы системы (/etc/.
В этом файле указываются стартовые скрипты, которые будут
автоматически запускаться при переходе к каждому из уровней выполнения.
Эти скрипты расположены в каталоге /etc, и из них вызываются
другие скрипты, которые лежат в каталогах /etc/rcN.d. ( N – число от 0
до 6 или символ S)
При переходе к режиму 0 выполняется /etc/rc0, к режиму 1 – /etc/rc1
и так далее. Далее даны описания всех возможных режимов работы Solaris.
Система останавливается, управление переходит к программе из
Административный режим.
Режим s (или S) называется однопользовательским. При переходе
в это состояние все /usr повреждена и не может быть восстановлена без вмешательства
Переход в режим s возможен даже при поврежденном или отсутствующем
файле /etc/, что невозможно для любого другого режима
работы. Пре переходе в режим S из других режимов работы файловые
системы, которые уже смонтированы к этому моменту, остаются смонтированными,
даже если предоставляются другими серверами в сети. Все
процессы, запущенные ранее, которые должны быть запущены только в
многопользовательских режимах, завершаются, и все процессы, имеющие
записи в utmpx (т.е. запущенные от имени пользователей), также
завершаются. Последнее означает, что процессы типа ttymon и других
Альтернативный
Режим остановки; операционная система останавливается, и, если это возможно, обеспечивается автоматическое выключение питания. Для автоматического выключения питания необходима аппаратная поддержка выполнения этой функции.
Останавливает и перезагружает операционную систему в состояние,
определяемое записью initdefault в файле /etc/. При необходимости
конфигурирует перед перезагрузкой новый загружаемый образ ядра
операционной системы. Для пересборки ядра после модификации параметров
ядра или добавления новых устройств следует выполнить команду
touch /reconfigure
перед перезагрузкой.
Кроме режимов, которые характерны для всех систем UNIX, подобных
System V, в Solaris начиная с версии Solaris 10 введено понятие
"этапов" (, svcadm и svccfg.
Более подробно об этапах рассказано в лекции 13 курса "Системное
В связи с появлением концепции этапов работы порядок загрузки
системы изменился, равно как и действия, которые выполняет
/etc/default /init и устанавливает TZ=Europe/Moscow CMASK=022 LC_COLLATE=ru_RU.UTF-8 LC_CTYPE=ru_RU.UTF-8 LC_MESSAGES=C LC_MONETARY=ru_RU.UTF-8 LC_NUMERIC=ru_RU.UTF-8 LC_TIME=ru_RU.UTF-8
После включения компьютера записанное в
Если тест прошел нормально, то программа автозагрузки пытается
загрузить систему, используя имя устройства и
Эти параметры могут быть изменены программой
Программа, которая запускается после начального
Загрузка по сети может идти с применением
Команду среды OpenBoot (иначе говоря,
boot net:rarp boot net:dhcp
или полагаясь на выбор сценария по умолчанию (тогда сценарий не указывается):
boot net
При этом загрузка осуществляется через тот интерфейс, для
которого определен
Начальный man bootparams для получения детальной информации о
протоколе). После того, как
При загрузке по сети с использованием
При загрузке с диска разделяют два этапа: начальная загрузка и вторичная.
Начальная загрузка заключается в том, что программа загрузки
из
Если /.
Для многих компьютеров /. Если указано
Если . О местоположении и содержимом этого файла будет рассказно
ниже, в разделе "Файлы, используемые при загрузке системы".
В системах с архитектурой
ok
Здесь мы рассмотрим команду
предполагает возможность указания
загрузочного устройства и дополнительных аргументов:
boot [device] [arguments]
Если дать команду без параметров, то будет выполнена загрузка
с устройства по умолчанию – то есть с того устройства, которое указано
в переменной или diag- в bootdevice
и используются diag- и diag-file.
Аргументы команды могут быть многострочными, они не анализируются
и diag-file игнорируется. Например, если дана команда
boot –s
то
boot net
и
boot cdrom
если даны без аргументов, будут использовать содержимое переменных
и diag-file как путь к файлу ядра. Стало быть, когда содержит
имя 64-, то загрузка не состоится, если на
Для загрузки в специфическом режиме следует указывать команде ok вводится команда:
– загрузка ядра, используемого по умолчанию, в однопользовательском режиме;
– принудительная загрузка 32-
– принудительная загрузка 64-
Для более детального изучения команды в вашей системе следует
использовать man ; помните, что на некоторых платформах, в
зависимости от , могут наблюдаться отклонения от описанной
здесь и в документации схемы.
На компьютерах
Начиная с версии Solaris 10 1/06 описанная в этом и следующих двух
абзацах процедура перестала использоваться. В версиях до Solaris 10 3/05
включительно в процессе загрузки применялся
После возвращения управления от /etc/bootrc, который управлял дальнейшим процессом
загрузки. Обычный /etc/bootrc предлагает
Для загрузки в специфическом режиме следует указывать команде
b kernel/unix –as
для загрузки ядра, используемого по умолчанию, в однопользовательском режиме.
/ |
|
/etc/ |
файл, в котором указано, какие программы |
/sbin/ |
программа, которая переводит систему в тот или иной режим работы; |
/ |
основной и альтернативный файл политики загрузки системы, этот файл есть не на всех платформах. |
/ |
файл ядра (по умолчанию) на 32-битных системах |
/ |
файл ядра (по умолчанию) на 64-битных системах |
Только для компьютеров
/etc/bootrc |
скрипт, управляющий загрузкой |
/ |
|
/ |
каталог с файлами, используемыми при загрузке |
Некоторые старые компьютеры
Процессоры
Компания Sun утверждает, что комбинация команд, вызывающая
нештатную остановку
В тех системах, где /
ALLOW_64BIT_KERNEL_ON_UltraSPARC_1_CPU=true
После того, как ядро загружено в память и ему передано управление,
ядро начинает загрузку модулей. В этот момент оно еще не умеет читать
файлы с /etc/vfstab /sbin/
для перехода к рабочему режиму системы. Процесс /sbin/, в свою
очередь, запускает те программы и скрипты, которые перечислены в /etc/, и передает управление .
До Solaris 9 включительно режим работы по умолчанию указывался
в /etc/ с меткой initdefault. Начиная с Solaris 10 рабочий режим
определяется установками подсистемы
В Solaris ядро настраивается динамически, т.е. изменить параметры
ядра можно как при /etc/system ), так и во время работы, на лету. Поэтому ядро
называется динамическим. Оно состоит из небольшой статической части
и множества модулей, которые загружаются по мере необходимости.
Многие модули загружаются автоматически при старте системы, в то
время как другие, например,
Чтобы узнать, какие модули загружены в настоящий момент, следует выполнить команду
modinfo
/ и /usr/, специфичные
для аппаратной платформы модули лежат в каталогах /
и / (если такие есть).
Специфические указания, какие модули загружать при старте системы,
следует разместить в файле /etc/system, который считывается ядром
при загрузке. В этом файле можно также указать дополнительные параметры,
которые надо передать модулям при загрузке.
В частности, /etc/system используют, чтобы указать:
Стандартный файл /etc/system в Solaris 10 выглядит примерно так
(незначимые для данного примера строки не показаны):
* SYSTEM SPECIFICATION FILE * * moddir: * * Set the search path for modules. This has a format similar * to the csh path variable. If the module isn't found in the * first directory it tries the second and so on. The default * is /kernel /usr/kernel * * Example: * moddir: /kernel /usr/kernel /other/modules * * root device and root filesystem configuration: * * The following may be used to override the defaults provided * by the boot program: * * rootfs: Set the filesystem type of the root. * * rootdev: Set the root device. This should be a * fully expanded physical pathname. The * default is the physical pathname of the * device where the boot program resides. * The physical pathname is highly platform * and configuration dependent. * * Example: * rootfs:ufs * rootdev:/sbus@1,f8000000/esp@0,800000/sd@3,0:a * * (Swap device configuration should be specified in /etc/vfstab.) * * exclude: * * Modules appearing in the moddir path which are NOT to be * loaded, even if referenced. Note that `exclude' accepts * either a module name, or a filename which includes the * directory. * * Examples: * exclude: win * exclude: sys/shmsys * forceload: * * Cause these modules to be loaded at boot time, (just before * mounting the root filesystem) rather than at first * reference. Note that forceload expects a filename which * includes the directory. Also note that loading a module * does not necessarily imply that it will be installed. * * Example: * forceload: drv/foo * * set: * * Set an integer variable in the kernel or a module to a new * value. This facility should be used with caution. See * system(4). * * Examples: * * To set variables in 'unix': * * set nautopush=32 * set maxusers=40 * * To set a variable named 'debug' in the module named * 'test_module' * * set test_module:debug = 0x13
Важно!
Всегда делайте резервную копию любого файла конфигурации
перед внесением изменений! Дать команду
Никогда не вносите в файлы конфигурации изменений, если не уверены, что это надо делать или сомневаетесь в том, что должно получиться в результате.
Если правилом (2) вы пренебрегли вопреки голосу разума, то неверный
файл /etc/system может вызвать ошибку при загрузке и система не
загрузится. Если это случилось, то:
boot –a для /etc/system.bak );/dev/null – тогда все значения будут приняты по умолчанию.Как видно из приведенного примера, настройки в /etc/system часто
выглядят так:
set параметр=значение
Например, параметр ядра MAXUSERS устанавливается в значение 50 следующей командой:
set maxusers = 50
Обратите внимание на то, что параметры статической части ядра (фактически, файла unix) устанавливаются без ссылки на модуль, а параметры, применимые к модулям, – с указанием имени модуля:
set модуль:параметр=значение
Длина команды в файле /etc/system не должна превышать 80
символов, строки, начинающиеся со знака звездочки "*" или решетки "#",
интерпретируются как комментарии.
Чтобы проверить, какие значения имеют настраиваемые параметры
ядра, следует использовать команду sysdef, которая показывает список
обнаруженных устройств,
sysdef
*
* Hostid
*
0930edc1
*
* i86pc Configuration
*
*
* Devices
*
scsi_vhci, instance #0
isa, instance #0
i8042, instance #0
keyboard, instance #0
mouse, instance #0
motherboard (driver not attached)
asy, instance #0
lp, instance #0
asy, instance #1
pit_beep, instance #0
pci, instance #0
pci1025,10a (driver not attached)
pci1002,5a34, instance #0
display, instance #0
pci1002,5a36 (driver not attached)
pci1002,5a37 (driver not attached)
pci1002,5a38 (driver not attached)
pci1002,5a39, instance #4
pci1468,422, instance #0
pci-ide, instance #0
ide, instance #0
cmdk, instance #0
ide (driver not attached)
pci1025,10a, instance #0
pci1025,10a, instance #1
mouse, instance #2
pci1025,10a, instance #0
device, instance #0
pci1025,10a (driver not attached)
<...>
*
* Loadable Objects
*
* Loadable Object Path = /platform/i86pc/kernel
*
kmdb/amd64/cpu.generic
kmdb/amd64/cpu_ms.AuthenticAMD.15
kmdb/amd64/pcplusmp
kmdb/amd64/unix
kmdb/amd64/uppc
kmdb/cpu.generic
kmdb/cpu_ms.AuthenticAMD.15
kmdb/pcplusmp
kmdb/unix
kmdb/uppc
drv/amd64/xsvc
drv/xsvc
drv/amd64/cpc
hard link: sys/amd64/cpc
drv/cpc
hard link: sys/cpc
misc/amd64/cpr
misc/cpr
drv/amd64/nxge
drv/nxge
drv/amd64/pci-ide
drv/pci-ide
amd64/unix
cpu/amd64/cpu.generic
cpu/amd64/cpu_ms.AuthenticAMD
cpu/amd64/cpu_ms.AuthenticAMD.15
cpu/amd64/cpu_ms.GenuineIntel
<...>
*
* Loadable Object Path = /usr/kernel
*
drv/ncall
drv/nsctl
drv/nskern
drv/sdbc
drv/amd64/sv
drv/sv
drv/amd64/pool
drv/pool
drv/amd64/zcons
drv/zcons
drv/amd64/winlock
drv/winlock
drv/amd64/ii
drv/ii
drv/amd64/ipf
drv/ipf
misc/spuni
misc/amd64/spuni
drv/amd64/pm
drv/pm
<...>
*
* System Configuration
*
swap files
swapfile dev swaplo blocks free
/dev/dsk/c0d0s1 102,1 8 4209016 4036480
*
* Tunable Parameters
*
32006144 maximum memory allowed in buffer cache (bufhwm)
24426 maximum number of processes (v.v_proc)
99 maximum global priority in sys class (MAXCLSYSPRI)
24421 maximum processes per user id (v.v_maxup)
30 auto update time limit in seconds (NAUTOUP)
25 page stealing low water mark (GPGSLO)
1 fsflush run rate (FSFLUSHR)
25 minimum resident memory for avoiding deadlock (MINARMEM)
25 minimum swapable memory for avoiding deadlock (MINASMEM)
*
* Utsname Tunables
*
5.11 release (REL)
solaris node name (NODE)
SunOS system name (SYS)
snv_79a version (VER)
*
* Process Resource Limit Tunables (Current:Maximum)
*
0x0000000000000100:0x0000000000010000 file descriptors
*
* Streams Tunables
*
9 maximum number of pushes allowed (NSTRPUSH)
65536 maximum stream message size (STRMSGSZ)
1024 max size of ctl part of message (STRCTLSZ)
*
* IPC Messages module is not loaded
*
*
* IPC Semaphores module is not loaded
*
*
* IPC Shared Memory
*
* The IPC Shared Memory module no longer has system-wide limits.
* Please see the "Solaris Tunable Parameters Reference Manual" for
* information on how the old limits map to resource controls and
* the prctl(1) and getrctl(2) manual pages for information on
* observing the new limits.
*
*
* Time Sharing Scheduler Tunables
*
60 maximum time sharing user priority (TSMAXUPRI)
SYS system class name (SYS_NAME)
Процесс запускается ядром сразу после монтирования файловых
систем из /etc/vfstab. После этого /etc/,
содержимое которого управляет тем, как /etc/ в
системе Solrais 10:
ap::sysinit:/sbin/autopush -f /etc/iu.ap sp::sysinit:/sbin/soconfig -f /etc/sock2path smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog </dev/console p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog pt:s1234:powerfail:/usr/lib/svc/method/installupdates lock
Первая строка файла отвечает за
Хотя файл и потерял свое значение для запуска и перезапуска
/etc/ был модифицирован,
то для интеграции содержимого файла в общую базу данных о службах в
системе следует запустить inetconv. Без этого модификация /etc/
не окажет никакого действия на порядок загрузки /etc/ legacy_run после
запуска всех остальных /etc/
В каталогах /etc/rcN.d лежат скрипты
Файлы, начинающиеся с буквы S (
При переходе в тот или иной режим работы системы выполняются
вначале скрипты останова приложений, а затем – скрипты запуска
приложений того режима, в который происходит переход. При старте
системы выполняются скрипты запуска приложений режима 3, которому
соответствует этап
То, какие именно скрипты запускать, описано в файле /etc/rcN
( N может принимать значения от 0 до 6 и s), который собственно и вызывается
процессом /etc/rcN являются /sbin/rcN (см. файл /etc/ выше).
Так, если каталог /etc/rc3.d содержит нижеуказанные скрипты
(см. рис 11.1), то первым выполнится S13kdc.,
затем S14kdc и так все по порядку (последним будет S90samba ).
(рис 11.1) Список файлов каталога /etc/rc3.dХотя стандартным для Solaris 10 (и, /etc/rcN.d, а с помощью /etc/rcN.d, то
приложения будут нормально загружаться в порядке, описанном выше в разделе
"
Для перевода системы из одного режима в другой, в том числе для ее остановки, следует использовать специально предназначенные для этого программы.
В Solaris есть несколько таких программ:
/usr/sbin/shutdown /sbin/init /usr/sbin/halt /usr/sbin/reboot /usr/sbin/poweroff Stop+A или L1+A
Программы /usr/sbin/ выполняют
завершение всех процессов в системе, записывают несохраненные
данные на диск, и переводят систему в новый режим работы (в том числе
и в состояние остановки).
Программа /usr/sbin/ выполняет все вышеперечисленное и
затем переводит систему в режим, определенный как initdefault в /etc/.
Команда /usr/sbin/poweroff обеспечивает переход в режим номер 5,
т.е. она эквивалентна команде .
Последняя команда (комбинация клавиш <Stop+A> или <L1+A>)
доступна только в
Самый общий способ , она
есть в любом UNIX'e. В Solaris эта программа имеет следующий стнтаксис
вызова:
shutdown [-y] [-gпериод_ожидания [-iрежим]
например
shutdown –y –g0
Эта команда выполняется только привилегированным пользователем для изменения режима работы системы. Обычно она используется для перехода из многопользовательского режима (3) в другой режим.
По умолчанию, команда переводит систему в режим 0, т.е в состояние,
в котором безопасно отключать питание. Это состояние называется
состоянием остановки (
Команда посылает всем /etc/, если он существует.
Если не может найти файл или не может прочитать значение,
она выдает предупреждение и устанавливает период ожидания в 60 секунд.
По умолчанию программа запрашивает подтверждение у запустившего ее
Файл /etc/ используется для задания значений,
специфичных для вашей системы.
Программа ведет себя по-разному в зависимости от
количества . Если зарегистрирован только пользователь,
выполняющий команду , или если период ожидания задан
равным нулю,
Если указать ключ –y, то запрос на подтверждение не выводится:
предполагается положительный ответ на него.
Помните, что системы всегда следует останавливать перед выключением
компьютера, а пользователи должны завершить свои
При запуске Solaris автоматически начинают работать различные
требует
от
Стоит отметить, что кроме неукоснительного выполнения корректного
или аналогичной
ей по смыслу, есть еще одно дело, о котором , это значит,
что осталось установить надежную систему бесперебойного питания.
Подсоединяя и ее работа
завершится безболезненно. Конечно, для систем круглосуточной работы
надо иметь
С помощью программы
init режим_работы
Кроме описанных выше режимов работы, можно указать режимы a, b, c и q. Режимы a, b, c – это псевдорежимы, они существуют только для
того, чтобы было можно с помощью /etc/ как соответствующие данным режимам.
Команда
init q
вызывает перечитывание процессом файла /etc/. Следовательно,
если вы изменили этот файл и желаете, чтобы изменения оказали немедленное
влияние на систему, следует дать команду .
Программа telinit является , и ее используют
для передачи команд запущенной в данный момент программе .
В ответ на команду вы увидите нечто вроде:
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):
Вывод, сопровождающий выполнение команды, приведен не полностью.
Обратите внимение на последние две строки; здесь требуется либо
указать пароль
Для немедленного начала ) можно использовать команду . От
Команда выполняет запись кэшируемых данных на диск.
Команда /etc/rcN.d/K* ) и не посылает никаких сообщений
пользователям. Команда выполняет запись кэшируемых данных на
диск, так же, как и .
С помощью
reboot -- -rs
Как видно из примера, чтобы отделить ключи самой от тех,
что будут переданы
Команда poweroff переводит систему в режим выполнения 5 и эквивалентна . Пользователи не оповещаются об изменении режима
работы, скрипты завершения K* не выполняются, и, если аппаратура компьютера
поддерживает программное выключение питания, выключается
питание компьютера.
В некоторых случаях операционная система перестает отвечать на
запросы и не откликается даже на команду
Рекомендуют такую "зависшую" систему перезапустить, нажав
Stop+A или L1+A (для платформы
Некоторые версии OpenBoot поддерживают ряд клавиатурных
команд (они вводятся нажатием комбинаций клавиш), которые изменяют
поведение OpenBoot при загрузке. Эти клавиши надо нажимать сразу
после включения системного блока и держать их несколько секунд, до
того, как мигнет светодиод на клавиатуре. Эта функциональность НЕ
поддерживается на клавиатурах, подключаемых по
К этим клавиатурным командам относятся:
Для изменения комбинаций клавиш, назначенных клавиатурным
командам, надо отредактировать файл /etc/. В нем также
можно разрешить или запретить клавиатурные команды. После модификации
файла следует дать команду kbd –i для изменения стандартных
назначений на новые.
Следует отметить, что, в зависимости от установок безопасности
компьютера, изменение клавиатурных команд и доступ к командной
строке OpenBoot могут быть запрещены либо доступ к
Для изменения режима работы системы рекомендуется по-прежнему
использовать вышеописанные команды, которые существовали и в версиях
Solaris до версии Solaris 10. В версии Solaris 10 благодаря появлению концепции
, и ). Первый вариант загрузки требует указать этап all, второй – этап none. В системах
ok boot -m milestone=all
или
ok boot -m milestone=none
соответственно.
Загрузка без запущенных
Если система безнадежно зависла, следует:
/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
Если ответ вас удовлетворил, можно начинать работу.
Помните, что выключать компьютер можно только после синхронизации файловых систем, иначе могут возникнуть потери данных и ошибки в файловой системе.
При включении компьютера следует соблюдать порядок действий:
Во-первых, Solaris относится к System V системам, и поэтому процедуры
его запуска и остановки, а также файлы конфигурации и системные
скрипты, используемые для этих процедур, в корне отличаются от таковых
в системах
Во-вторых, Solaris отличается от собратьев по ветви System V наличием
специального режима работы системы, который называется s или
S. Ниже этот режим описан подробнее. В большинстве систем System V
остальные семь режимов работы (0-6) имеют аналогичное назначение.
Некоторые системы, например, многие из систем Linux, имеют несколько
иную структуру каталогов системных скриптов. Так, в Solaris скрипты
находятся в /etc/rc0.d, /etc/rc1.d и т.д., а в Linux – в /etc/rc.d/rc0/, /etc/rc.d/rc1/ и т.д. Однако, для того, чтобы уточнить местоположение
этих скриптов в любой из систем System V, достаточно изучить man .
В-третьих, Solaris обладает самой большой коллекцией программ для
изменения режима работы системы: .
В других системах не всегда есть полный набор этих программ, однако, в
системах System V всегда присутствуют программы и . Они
всегда имеют одинаковое назначение, независимо от названия и поставщика
ОС, хотя их ключи иногда могут несколько отличаться.
Повторимся еще раз: общие принципы загрузки и man , man .
Начиная с Solaris 10, в Solaris появилась новая подсистема , svcadm и svccfg.
В одной и той же компьютерной системе может понадобиться
выполнять совершенно разные
Для того, чтобы системе было легче переключаться между разными наборами программ, которые используются для разных типов задач, была придумана концепция режимов работы системы. Любой UNIX ветви System V, в том числе и Solaris, может работать в одном из семи режимов. Каждый режим характеризуется своим назначением, которое определяет набор программ, выполняющихся в этом режиме. В Solaris используется восемь режимов (0-6 и S или s, режимы s и S – это одно и то же).
Режим работы системы (/etc/.
В этом файле указываются стартовые скрипты, которые будут
автоматически запускаться при переходе к каждому из уровней выполнения.
Эти скрипты расположены в каталоге /etc, и из них вызываются
другие скрипты, которые лежат в каталогах /etc/rcN.d. ( N – число от 0
до 6 или символ S)
При переходе к режиму 0 выполняется /etc/rc0, к режиму 1 – /etc/rc1
и так далее. Далее даны описания всех возможных режимов работы Solaris.
Система останавливается, управление переходит к программе из
Административный режим.
Режим s (или S) называется однопользовательским. При переходе
в это состояние все /usr повреждена и не может быть восстановлена без вмешательства
Переход в режим s возможен даже при поврежденном или отсутствующем
файле /etc/, что невозможно для любого другого режима
работы. Пре переходе в режим S из других режимов работы файловые
системы, которые уже смонтированы к этому моменту, остаются смонтированными,
даже если предоставляются другими серверами в сети. Все
процессы, запущенные ранее, которые должны быть запущены только в
многопользовательских режимах, завершаются, и все процессы, имеющие
записи в utmpx (т.е. запущенные от имени пользователей), также
завершаются. Последнее означает, что процессы типа ttymon и других
Альтернативный
Режим остановки; операционная система останавливается, и, если это возможно, обеспечивается автоматическое выключение питания. Для автоматического выключения питания необходима аппаратная поддержка выполнения этой функции.
Останавливает и перезагружает операционную систему в состояние,
определяемое записью initdefault в файле /etc/. При необходимости
конфигурирует перед перезагрузкой новый загружаемый образ ядра
операционной системы. Для пересборки ядра после модификации параметров
ядра или добавления новых устройств следует выполнить команду
touch /reconfigure
перед перезагрузкой.
Кроме режимов, которые характерны для всех систем UNIX, подобных
System V, в Solaris начиная с версии Solaris 10 введено понятие
"этапов" (, svcadm и svccfg.
Более подробно об этапах рассказано в лекции 13 курса "Системное
В связи с появлением концепции этапов работы порядок загрузки
системы изменился, равно как и действия, которые выполняет
/etc/default /init и устанавливает TZ=Europe/Moscow CMASK=022 LC_COLLATE=ru_RU.UTF-8 LC_CTYPE=ru_RU.UTF-8 LC_MESSAGES=C LC_MONETARY=ru_RU.UTF-8 LC_NUMERIC=ru_RU.UTF-8 LC_TIME=ru_RU.UTF-8
После включения компьютера записанное в
Если тест прошел нормально, то программа автозагрузки пытается
загрузить систему, используя имя устройства и
Эти параметры могут быть изменены программой
Программа, которая запускается после начального
Загрузка по сети может идти с применением
Команду среды OpenBoot (иначе говоря,
boot net:rarp boot net:dhcp
или полагаясь на выбор сценария по умолчанию (тогда сценарий не указывается):
boot net
При этом загрузка осуществляется через тот интерфейс, для
которого определен
Начальный man bootparams для получения детальной информации о
протоколе). После того, как
При загрузке по сети с использованием
При загрузке с диска разделяют два этапа: начальная загрузка и вторичная.
Начальная загрузка заключается в том, что программа загрузки
из
Если /.
Для многих компьютеров /. Если указано
Если . О местоположении и содержимом этого файла будет рассказно
ниже, в разделе "Файлы, используемые при загрузке системы".
В системах с архитектурой
ok
Здесь мы рассмотрим команду
предполагает возможность указания
загрузочного устройства и дополнительных аргументов:
boot [device] [arguments]
Если дать команду без параметров, то будет выполнена загрузка
с устройства по умолчанию – то есть с того устройства, которое указано
в переменной или diag- в bootdevice
и используются diag- и diag-file.
Аргументы команды могут быть многострочными, они не анализируются
и diag-file игнорируется. Например, если дана команда
boot –s
то
boot net
и
boot cdrom
если даны без аргументов, будут использовать содержимое переменных
и diag-file как путь к файлу ядра. Стало быть, когда содержит
имя 64-, то загрузка не состоится, если на
Для загрузки в специфическом режиме следует указывать команде ok вводится команда:
– загрузка ядра, используемого по умолчанию, в однопользовательском режиме;
– принудительная загрузка 32-
– принудительная загрузка 64-
Для более детального изучения команды в вашей системе следует
использовать man ; помните, что на некоторых платформах, в
зависимости от , могут наблюдаться отклонения от описанной
здесь и в документации схемы.
На компьютерах
Начиная с версии Solaris 10 1/06 описанная в этом и следующих двух
абзацах процедура перестала использоваться. В версиях до Solaris 10 3/05
включительно в процессе загрузки применялся
После возвращения управления от /etc/bootrc, который управлял дальнейшим процессом
загрузки. Обычный /etc/bootrc предлагает
Для загрузки в специфическом режиме следует указывать команде
b kernel/unix –as
для загрузки ядра, используемого по умолчанию, в однопользовательском режиме.
/ |
|
/etc/ |
файл, в котором указано, какие программы |
/sbin/ |
программа, которая переводит систему в тот или иной режим работы; |
/ |
основной и альтернативный файл политики загрузки системы, этот файл есть не на всех платформах. |
/ |
файл ядра (по умолчанию) на 32-битных системах |
/ |
файл ядра (по умолчанию) на 64-битных системах |
Только для компьютеров
/etc/bootrc |
скрипт, управляющий загрузкой |
/ |
|
/ |
каталог с файлами, используемыми при загрузке |
Некоторые старые компьютеры
Процессоры
Компания Sun утверждает, что комбинация команд, вызывающая
нештатную остановку
В тех системах, где /
ALLOW_64BIT_KERNEL_ON_UltraSPARC_1_CPU=true
После того, как ядро загружено в память и ему передано управление,
ядро начинает загрузку модулей. В этот момент оно еще не умеет читать
файлы с /etc/vfstab /sbin/
для перехода к рабочему режиму системы. Процесс /sbin/, в свою
очередь, запускает те программы и скрипты, которые перечислены в /etc/, и передает управление .
До Solaris 9 включительно режим работы по умолчанию указывался
в /etc/ с меткой initdefault. Начиная с Solaris 10 рабочий режим
определяется установками подсистемы
В Solaris ядро настраивается динамически, т.е. изменить параметры
ядра можно как при /etc/system ), так и во время работы, на лету. Поэтому ядро
называется динамическим. Оно состоит из небольшой статической части
и множества модулей, которые загружаются по мере необходимости.
Многие модули загружаются автоматически при старте системы, в то
время как другие, например,
Чтобы узнать, какие модули загружены в настоящий момент, следует выполнить команду
modinfo
/ и /usr/, специфичные
для аппаратной платформы модули лежат в каталогах /
и / (если такие есть).
Специфические указания, какие модули загружать при старте системы,
следует разместить в файле /etc/system, который считывается ядром
при загрузке. В этом файле можно также указать дополнительные параметры,
которые надо передать модулям при загрузке.
В частности, /etc/system используют, чтобы указать:
Стандартный файл /etc/system в Solaris 10 выглядит примерно так
(незначимые для данного примера строки не показаны):
* SYSTEM SPECIFICATION FILE * * moddir: * * Set the search path for modules. This has a format similar * to the csh path variable. If the module isn't found in the * first directory it tries the second and so on. The default * is /kernel /usr/kernel * * Example: * moddir: /kernel /usr/kernel /other/modules * * root device and root filesystem configuration: * * The following may be used to override the defaults provided * by the boot program: * * rootfs: Set the filesystem type of the root. * * rootdev: Set the root device. This should be a * fully expanded physical pathname. The * default is the physical pathname of the * device where the boot program resides. * The physical pathname is highly platform * and configuration dependent. * * Example: * rootfs:ufs * rootdev:/sbus@1,f8000000/esp@0,800000/sd@3,0:a * * (Swap device configuration should be specified in /etc/vfstab.) * * exclude: * * Modules appearing in the moddir path which are NOT to be * loaded, even if referenced. Note that `exclude' accepts * either a module name, or a filename which includes the * directory. * * Examples: * exclude: win * exclude: sys/shmsys * forceload: * * Cause these modules to be loaded at boot time, (just before * mounting the root filesystem) rather than at first * reference. Note that forceload expects a filename which * includes the directory. Also note that loading a module * does not necessarily imply that it will be installed. * * Example: * forceload: drv/foo * * set: * * Set an integer variable in the kernel or a module to a new * value. This facility should be used with caution. See * system(4). * * Examples: * * To set variables in 'unix': * * set nautopush=32 * set maxusers=40 * * To set a variable named 'debug' in the module named * 'test_module' * * set test_module:debug = 0x13
Важно!
Всегда делайте резервную копию любого файла конфигурации
перед внесением изменений! Дать команду
Никогда не вносите в файлы конфигурации изменений, если не уверены, что это надо делать или сомневаетесь в том, что должно получиться в результате.
Если правилом (2) вы пренебрегли вопреки голосу разума, то неверный
файл /etc/system может вызвать ошибку при загрузке и система не
загрузится. Если это случилось, то:
boot –a для /etc/system.bak );/dev/null – тогда все значения будут приняты по умолчанию.Как видно из приведенного примера, настройки в /etc/system часто
выглядят так:
set параметр=значение
Например, параметр ядра MAXUSERS устанавливается в значение 50 следующей командой:
set maxusers = 50
Обратите внимание на то, что параметры статической части ядра (фактически, файла unix) устанавливаются без ссылки на модуль, а параметры, применимые к модулям, – с указанием имени модуля:
set модуль:параметр=значение
Длина команды в файле /etc/system не должна превышать 80
символов, строки, начинающиеся со знака звездочки "*" или решетки "#",
интерпретируются как комментарии.
Чтобы проверить, какие значения имеют настраиваемые параметры
ядра, следует использовать команду sysdef, которая показывает список
обнаруженных устройств,
sysdef
*
* Hostid
*
0930edc1
*
* i86pc Configuration
*
*
* Devices
*
scsi_vhci, instance #0
isa, instance #0
i8042, instance #0
keyboard, instance #0
mouse, instance #0
motherboard (driver not attached)
asy, instance #0
lp, instance #0
asy, instance #1
pit_beep, instance #0
pci, instance #0
pci1025,10a (driver not attached)
pci1002,5a34, instance #0
display, instance #0
pci1002,5a36 (driver not attached)
pci1002,5a37 (driver not attached)
pci1002,5a38 (driver not attached)
pci1002,5a39, instance #4
pci1468,422, instance #0
pci-ide, instance #0
ide, instance #0
cmdk, instance #0
ide (driver not attached)
pci1025,10a, instance #0
pci1025,10a, instance #1
mouse, instance #2
pci1025,10a, instance #0
device, instance #0
pci1025,10a (driver not attached)
<...>
*
* Loadable Objects
*
* Loadable Object Path = /platform/i86pc/kernel
*
kmdb/amd64/cpu.generic
kmdb/amd64/cpu_ms.AuthenticAMD.15
kmdb/amd64/pcplusmp
kmdb/amd64/unix
kmdb/amd64/uppc
kmdb/cpu.generic
kmdb/cpu_ms.AuthenticAMD.15
kmdb/pcplusmp
kmdb/unix
kmdb/uppc
drv/amd64/xsvc
drv/xsvc
drv/amd64/cpc
hard link: sys/amd64/cpc
drv/cpc
hard link: sys/cpc
misc/amd64/cpr
misc/cpr
drv/amd64/nxge
drv/nxge
drv/amd64/pci-ide
drv/pci-ide
amd64/unix
cpu/amd64/cpu.generic
cpu/amd64/cpu_ms.AuthenticAMD
cpu/amd64/cpu_ms.AuthenticAMD.15
cpu/amd64/cpu_ms.GenuineIntel
<...>
*
* Loadable Object Path = /usr/kernel
*
drv/ncall
drv/nsctl
drv/nskern
drv/sdbc
drv/amd64/sv
drv/sv
drv/amd64/pool
drv/pool
drv/amd64/zcons
drv/zcons
drv/amd64/winlock
drv/winlock
drv/amd64/ii
drv/ii
drv/amd64/ipf
drv/ipf
misc/spuni
misc/amd64/spuni
drv/amd64/pm
drv/pm
<...>
*
* System Configuration
*
swap files
swapfile dev swaplo blocks free
/dev/dsk/c0d0s1 102,1 8 4209016 4036480
*
* Tunable Parameters
*
32006144 maximum memory allowed in buffer cache (bufhwm)
24426 maximum number of processes (v.v_proc)
99 maximum global priority in sys class (MAXCLSYSPRI)
24421 maximum processes per user id (v.v_maxup)
30 auto update time limit in seconds (NAUTOUP)
25 page stealing low water mark (GPGSLO)
1 fsflush run rate (FSFLUSHR)
25 minimum resident memory for avoiding deadlock (MINARMEM)
25 minimum swapable memory for avoiding deadlock (MINASMEM)
*
* Utsname Tunables
*
5.11 release (REL)
solaris node name (NODE)
SunOS system name (SYS)
snv_79a version (VER)
*
* Process Resource Limit Tunables (Current:Maximum)
*
0x0000000000000100:0x0000000000010000 file descriptors
*
* Streams Tunables
*
9 maximum number of pushes allowed (NSTRPUSH)
65536 maximum stream message size (STRMSGSZ)
1024 max size of ctl part of message (STRCTLSZ)
*
* IPC Messages module is not loaded
*
*
* IPC Semaphores module is not loaded
*
*
* IPC Shared Memory
*
* The IPC Shared Memory module no longer has system-wide limits.
* Please see the "Solaris Tunable Parameters Reference Manual" for
* information on how the old limits map to resource controls and
* the prctl(1) and getrctl(2) manual pages for information on
* observing the new limits.
*
*
* Time Sharing Scheduler Tunables
*
60 maximum time sharing user priority (TSMAXUPRI)
SYS system class name (SYS_NAME)
Процесс запускается ядром сразу после монтирования файловых
систем из /etc/vfstab. После этого /etc/,
содержимое которого управляет тем, как /etc/ в
системе Solrais 10:
ap::sysinit:/sbin/autopush -f /etc/iu.ap sp::sysinit:/sbin/soconfig -f /etc/sock2path smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog </dev/console p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog pt:s1234:powerfail:/usr/lib/svc/method/installupdates lock
Первая строка файла отвечает за
Хотя файл и потерял свое значение для запуска и перезапуска
/etc/ был модифицирован,
то для интеграции содержимого файла в общую базу данных о службах в
системе следует запустить inetconv. Без этого модификация /etc/
не окажет никакого действия на порядок загрузки /etc/ legacy_run после
запуска всех остальных /etc/
В каталогах /etc/rcN.d лежат скрипты
Файлы, начинающиеся с буквы S (
При переходе в тот или иной режим работы системы выполняются
вначале скрипты останова приложений, а затем – скрипты запуска
приложений того режима, в который происходит переход. При старте
системы выполняются скрипты запуска приложений режима 3, которому
соответствует этап
То, какие именно скрипты запускать, описано в файле /etc/rcN
( N может принимать значения от 0 до 6 и s), который собственно и вызывается
процессом /etc/rcN являются /sbin/rcN (см. файл /etc/ выше).
Так, если каталог /etc/rc3.d содержит нижеуказанные скрипты
(см. рис 11.1), то первым выполнится S13kdc.,
затем S14kdc и так все по порядку (последним будет S90samba ).
(рис 11.1) Список файлов каталога /etc/rc3.dХотя стандартным для Solaris 10 (и, /etc/rcN.d, а с помощью /etc/rcN.d, то
приложения будут нормально загружаться в порядке, описанном выше в разделе
"
Для перевода системы из одного режима в другой, в том числе для ее остановки, следует использовать специально предназначенные для этого программы.
В Solaris есть несколько таких программ:
/usr/sbin/shutdown /sbin/init /usr/sbin/halt /usr/sbin/reboot /usr/sbin/poweroff Stop+A или L1+A
Программы /usr/sbin/ выполняют
завершение всех процессов в системе, записывают несохраненные
данные на диск, и переводят систему в новый режим работы (в том числе
и в состояние остановки).
Программа /usr/sbin/ выполняет все вышеперечисленное и
затем переводит систему в режим, определенный как initdefault в /etc/.
Команда /usr/sbin/poweroff обеспечивает переход в режим номер 5,
т.е. она эквивалентна команде .
Последняя команда (комбинация клавиш <Stop+A> или <L1+A>)
доступна только в
Самый общий способ , она
есть в любом UNIX'e. В Solaris эта программа имеет следующий стнтаксис
вызова:
shutdown [-y] [-gпериод_ожидания [-iрежим]
например
shutdown –y –g0
Эта команда выполняется только привилегированным пользователем для изменения режима работы системы. Обычно она используется для перехода из многопользовательского режима (3) в другой режим.
По умолчанию, команда переводит систему в режим 0, т.е в состояние,
в котором безопасно отключать питание. Это состояние называется
состоянием остановки (
Команда посылает всем /etc/, если он существует.
Если не может найти файл или не может прочитать значение,
она выдает предупреждение и устанавливает период ожидания в 60 секунд.
По умолчанию программа запрашивает подтверждение у запустившего ее
Файл /etc/ используется для задания значений,
специфичных для вашей системы.
Программа ведет себя по-разному в зависимости от
количества . Если зарегистрирован только пользователь,
выполняющий команду , или если период ожидания задан
равным нулю,
Если указать ключ –y, то запрос на подтверждение не выводится:
предполагается положительный ответ на него.
Помните, что системы всегда следует останавливать перед выключением
компьютера, а пользователи должны завершить свои
При запуске Solaris автоматически начинают работать различные
требует
от
Стоит отметить, что кроме неукоснительного выполнения корректного
или аналогичной
ей по смыслу, есть еще одно дело, о котором , это значит,
что осталось установить надежную систему бесперебойного питания.
Подсоединяя и ее работа
завершится безболезненно. Конечно, для систем круглосуточной работы
надо иметь
С помощью программы
init режим_работы
Кроме описанных выше режимов работы, можно указать режимы a, b, c и q. Режимы a, b, c – это псевдорежимы, они существуют только для
того, чтобы было можно с помощью /etc/ как соответствующие данным режимам.
Команда
init q
вызывает перечитывание процессом файла /etc/. Следовательно,
если вы изменили этот файл и желаете, чтобы изменения оказали немедленное
влияние на систему, следует дать команду .
Программа telinit является , и ее используют
для передачи команд запущенной в данный момент программе .
В ответ на команду вы увидите нечто вроде:
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):
Вывод, сопровождающий выполнение команды, приведен не полностью.
Обратите внимение на последние две строки; здесь требуется либо
указать пароль
Для немедленного начала ) можно использовать команду . От
Команда выполняет запись кэшируемых данных на диск.
Команда /etc/rcN.d/K* ) и не посылает никаких сообщений
пользователям. Команда выполняет запись кэшируемых данных на
диск, так же, как и .
С помощью
reboot -- -rs
Как видно из примера, чтобы отделить ключи самой от тех,
что будут переданы
Команда poweroff переводит систему в режим выполнения 5 и эквивалентна . Пользователи не оповещаются об изменении режима
работы, скрипты завершения K* не выполняются, и, если аппаратура компьютера
поддерживает программное выключение питания, выключается
питание компьютера.
В некоторых случаях операционная система перестает отвечать на
запросы и не откликается даже на команду
Рекомендуют такую "зависшую" систему перезапустить, нажав
Stop+A или L1+A (для платформы
Некоторые версии OpenBoot поддерживают ряд клавиатурных
команд (они вводятся нажатием комбинаций клавиш), которые изменяют
поведение OpenBoot при загрузке. Эти клавиши надо нажимать сразу
после включения системного блока и держать их несколько секунд, до
того, как мигнет светодиод на клавиатуре. Эта функциональность НЕ
поддерживается на клавиатурах, подключаемых по
К этим клавиатурным командам относятся:
Для изменения комбинаций клавиш, назначенных клавиатурным
командам, надо отредактировать файл /etc/. В нем также
можно разрешить или запретить клавиатурные команды. После модификации
файла следует дать команду kbd –i для изменения стандартных
назначений на новые.
Следует отметить, что, в зависимости от установок безопасности
компьютера, изменение клавиатурных команд и доступ к командной
строке OpenBoot могут быть запрещены либо доступ к
Для изменения режима работы системы рекомендуется по-прежнему
использовать вышеописанные команды, которые существовали и в версиях
Solaris до версии Solaris 10. В версии Solaris 10 благодаря появлению концепции
, и ). Первый вариант загрузки требует указать этап all, второй – этап none. В системах
ok boot -m milestone=all
или
ok boot -m milestone=none
соответственно.
Загрузка без запущенных
Если система безнадежно зависла, следует:
/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
Если ответ вас удовлетворил, можно начинать работу.
Помните, что выключать компьютер можно только после синхронизации файловых систем, иначе могут возникнуть потери данных и ошибки в файловой системе.
При включении компьютера следует соблюдать порядок действий:
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.