Добавить в корзинуПозвонить
Найти в Дзене
Игорь Сотников

Загрузка Linux. Init в стиле SysV

Init в стиле SysV – данная процедура инициализации, самая старая она более классический Unix вариант инициализации операционной системы. Для того, чтобы понять, как происходит инициализация необходимо понять, что такое режимы загрузки (они же runlevel), разобраться как между ними переключатся, рассмотреть работу со службами.
Обычно есть 7 уровней выполнения по умолчанию:
0. Выключение
1.

Init в стиле SysV – данная процедура инициализации, самая старая она более классический Unix вариант инициализации операционной системы. Для того, чтобы понять, как происходит инициализация необходимо понять, что такое режимы загрузки (они же runlevel), разобраться как между ними переключатся, рассмотреть работу со службами.

Обычно есть 7 уровней выполнения по умолчанию:

0. Выключение

1. Однопользовательский режим (чаще всего используется для отладки и настройки операционной системы)

2. Debian\Ubuntu по умолчанию

3. RedHat\Suse по умолчанию текстовый режим.

4. WildCard (программируемый режим, можно сюда поставить любой)

5. RedHat\Suse – GUI (Graphical User Interface)

6. Перезагрузка.

Но существуют операционные системы, где 10 уровней по умолчанию. Конечно речь идет о самых распространенных ядрах и сборках *nix образных операционных системах.

Для дальнейших пояснений, как работает инициализация в стиле sysV нам необходим операционная система CentOS 5.4 или ниже, потому что в более новых операционных системах данный процесс давно уже заменен. Отроем файл настроек текстовым редактором vi или любым другим удобным для вас.

Мы можем увидеть содержание файла. Те самые уровни о которых шла речь выше. Плюс прописан уровень используемые при загрузке по умолчанию. Строчка id:3:initdefault:

-2

Мы данный параметр можем отредактировать и например сказать, чтобы операционная система загружалась по умолчанию в Single Mode например

-3

Если мы посмотрим далее файл, мы можем увидеть настройку, которая описывает действия нажатия клавиш Ctrl+alt-delete. А также наглядно прописано, что запуск определенного уровня — это запуск определённого скрипта. Все скрипты запускаются из папки /etc/rc.d/

Все дальнейшие варианты инициализации растут, вот из этого варианта. И этой процедуры инициализации. Перейдем в директорию, где лежат все скрипты инициализации и выполняются данные скрипты при старте системы.

-4

В данной папке куча скриптов, которые запускают определенные службы, например, ssh запускает демона ssh для подключения клиентом по 22 порту. Т.е здесь куча служб и запускаются они этими скриптами. Если мы например хотим остановить какую нибудь службу то набираем ./rsync stop , ну и соответственно ./rsync start для запуска данной службы. Аналогично мы можем управлять через команду service, например: service rsync restart . Поднимемся на уровень выше cd ..

Найдем все файлы, которые начинаются с rc. Для этого набираем: ls -l | grep rc. В результате мы увидим несколько скриптов.

-5

Посмотрим rc3.d . А для этого перейдем в эту директорию. В ней можно увидеть кучу скриптов. В вариации Ubuntu современной и затем в вариации CentOS 5. 4

-6

-

-7

Те скрипты, которые начинаются с буквы K, эти скрипты при старте убивают сервис, те скрипты, которые имеют первой букву S запускают сервис. Ну и соответственно порядковый номер исполнения скрипта в очереди. Для каждого runlevel свой набор скриптов.

Основные команды

Init – управление инициализацией с помощью нее можно перемещаться между runlevel.

Telinit – управление процессом init , в старых дистрибутива использовалась именно эта команда.

Wall – вывод сообщения пользователям системы

Halt - выключение компьютера

Reboot – перезагрузка компьютера

Shutdown - запланированное выключение

Service service_name start|stop|reload|restart

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

Для того, чтобы послать сообщение все пользователям на данной машине необходимо набрать с соблюдением регистра wall “Abrakadabra”. У всех пользователей появится данное сообщение на экране.

Для выключения сейчас компьютера можно использовать shutdown –h now