Semenalidery.com

IT Новости из мира ПК
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Система инициализации linux

мЙЮОЩЕ ЪБРЙУЙ
Linux, РТПЗТБННЩ — РТПВМЕНЩ Й ТЕЫЕОЙС

уЙУФЕНЩ ЙОЙГЙБМЙЪБГЙК linux

уХЭЕУФЧХЕФ ОЕУЛПМШЛП УЙУФЕН ЙОЙГЙБМЙЪБГЙЙ. тБУУНПФТЙН ЙИ:
1) уЙУФЕНБ ЙОЙГЙБМЙЪБГЙЙ init (Ч РТПГЕУУЕ ЪБРХУЛБ СДТБ НПОФЙТХЕФУС ЛПТОЕЧБС ЖБКМПЧБС УЙУФЕНБ Й ЪБРХУЛБЕФУС РТПЗТБННБ init, ЛПФПТБС Й ЧЩРПМОСЕФ ДБМШОЕКЫХА ЙОЙГЙБМЙЪБГЙА УЙУФЕНЩ).
2) уЙУФЕНБ initng (РПЪЧПМСЕФ УХЭЕУФЧЕООП ХУЛПТЙФШ ЪБРХУЛ Linux, ОП ПОБ РПЛБ ЕЭЕ ЬЛУРЕТЙНЕОФБМШОБС, РПЬФПНХ ОЕ ХУФБОБЧМЙЧБЕФУС Ч ДЙУФТЙВХФЙЧБИ РП ХНПМЮБОЙА. пДОБЛП ЧЩ НПЦЕФЕ УБНПУФПСФЕМШОП ЕЕ ХУФБОПЧЙФШ Й РПРТПВПЧБФШ ЙУРПМШЪПЧБФШ — ХДБМЙФШ ЕЕ ЧУЕЗДБ НПЦОП, ЕУМЙ ПОБ ЧБУ ЮЕН-ФП ОЕ ХУФТПЙФ)
3) уЙУФЕНБ upstart ВЩМБ УРЕГЙБМШОП ТБЪТБВПФБОБ ДМС ДЙУФТЙВХФЙЧБ Ubuntu Linux, ОП ЕЕ РТЙ ЦЕМБОЙЙ НПЦОП ХУФБОПЧЙФШ Ч МАВПН ДЙУФТЙВХФЙЧЕ.

оБЮОЕН РП РПТСДЛХ:

1) уЙУФЕНБ ЙОЙГЙБМЙЪБГЙЙ init

рТПЗТБННБ init ЮЙФБЕФ ЛПОЖЙЗХТБГЙПООЩК ЖБКМ /etc/inittab Й ЪБРХУЛБЕФ ДТХЗЙЕ РТПГЕУУЩ, УПЗМБУОП ЙОУФТХЛГЙСН ЬФПЗП ЖБКМБ.
пДОБ ЙЪ ЗМБЧОЩИ ЙОУФТХЛГЙК ЖБКМБ /etc/inittab ЧЩЗМСДЙФ ФБЛ:
id: : initdefault
ьФБ ЙОУФТХЛГЙС ЪБДБЕФ ХТПЧЕОШ ЪБРХУЛБ РП ХНПМЮБОЙА. хТПЧЕОШ ЪБРХУЛБ ПРТЕДЕМСЕФ, ЛБЛЙЕ ДЕКУФЧЙС ВХДХФ ЧЩРПМОЕОЩ РТПЗТБННПК init (ЛБЛЙЕ РТПГЕУУЩ ЪБРХЭЕОЩ). чУЕЗП РТЕДХУНПФТЕОП ЫЕУФШ ХТПЧОЕК ЪБРХУЛБ:
0 — ПУФБОПЧЛБ УЙУФЕНЩ (СУОП, ЮФП Ч ЛБЮЕУФЧЕ ХТПЧОС РП ХНПМЮБОЙА ЬФПФ хТПЧЕОШ ВЩФШ ОЕ НПЦЕФ);
1 — ПДОПРПМШЪПЧБФЕМШУЛЙК ТЕЦЙН (Ч ОЕЗП НПЦОП РЕТЕКФЙ УТБЪХ РТЙ ЪБЗТХЪЛЕ, РЕТЕДБЧ СДТХ РБТБНЕФТ single);
2 — НОПЗПРПМШЪПЧБФЕМШУЛЙК ТЕЦЙН ВЕЪ РПДДЕТЦЛЙ УЕФЙ;
3 — НОПЗПРПМШЪПЧБФЕМШУЛЙК ТЕЦЙН У РПДДЕТЦЛПК УЕФЙ;
4 — ОЕ ЙУРПМШЪХЕФУС;
5 — НОПЗПРПМШЪПЧБФЕМШУЛЙК ЗТБЖЙЮЕУЛЙК ТЕЦЙН У ЪБЗТХЪЛПК X11 Й РПДДЕТЦЛПК УЕФЙ;
6 — РЕТЕЪБЗТХЪЛБ УЙУФЕНЩ.

ч ВПМШЫЙОУФЧЕ УМХЮБЕЧ Ч ЛБЮЕУФЧЕ ХТПЧОС ЪБРХУЛБ РП ХНПМЮБОЙА ХУФБОБЧМЙЧБЕФУС 3 ЙМЙ 5.
рЕТЕКФЙ ОБ ФПФ ЙМЙ ЙОПК ХТПЧЕОШ НПЦОП Й РПУМЕ ЪБЗТХЪЛЙ УЙУФЕНЩ. дМС ЬФПЗП ЙУРПМШЪХЕФУС ЛПНБОДБ:
# /sbin/init ‘ХТПЧЕОШ_ЬБРХУЛБ’

«пРТЕДЕМЙЧ» ХТПЧЕОШ ЪБРХУЛБ, init РППЮЕТЕДОП ЪБРХУЛБЕФ УГЕОБТЙЙ ЙЪ ЛБФБМПЗБ /etc/rc.d/rcX.d, ЗДЕ X — ЬФП ОПНЕТ ХТПЧОС ЪБРХУЛБ. еУМЙ ЪБКФЙ Ч ПДЙО ЙЪ ЬФЙИ ЛБФБМПЗПЧ, ОБРТЙНЕТ, Ч
/etc/rc.d/rc3.d, ФП НПЦОП ХЧЙДЕФШ УУЩМЛЙ ЖПТНБФБ:
S ‘ОПНЕТ»ЙНС’
рБТБНЕФТ ‘ОПНЕТ’ ПРТЕДЕМСЕФ РПТСДПЛ ЪБРХУЛБ УГЕОБТЙС (ОБРТЙНЕТ, SlOnetwork ЪБРХУФЙФУС ТБОШЫЕ, ЮЕН S11internet), Б РБТБНЕФТ ‘ЙНС’ — ЪБДБЕФ ЙНС УГЕОБТЙС. уБНЙ УГЕОБТЙЙ ОБИПДСФУС Ч ЛБФБМПЗЕ /etc/rc.d/init.d.

уУЩМЛЙ, ОБЮЙОБАЭЙЕУС ОБ УЙНЧПМ S, — ЬФП УУЩМЛЙ ЪБРХУЛБ (ПФ S, start), РТЙ ЪБРХУЛЕ УППФЧЕФУФЧХАЭЙИ УГЕОБТЙЕЧ ЙН ВХДЕФ РЕТЕДБО БТЗХНЕОФ start. оБРТЙНЕТ, ЕУМЙ init ПВОБТХЦЙМБ Ч /etc/rc.d/rc3.d ЖБКМ SlOnetwork, ФП ПОБ ЧЩРПМОЙФ ЛПНБОДХ:
/etc/rc.d/init.d/network start
еУМЙ ЙНС УУЩМЛЙ ОБЮЙОБЕФУС ОБ ВХЛЧХ л (ПФ kill), ФП ЬФП УУЩМЛБ ПУФБОПЧЛЙ УЕТЧЙУБ, ОБРТЙНЕТ, лп1service. дБООБС УУЩМЛБ ХЛБЪЩЧБЕФ ОБ ЛПНБОДХ:
/etc/rc.d/init.d/service stop
0О НПЦЕФЕ ЪБРХУФЙФШ МАВПК УГЕОБТЙК ЙЪ ЛБФБМПЗБ init.d ОЕРПУТЕДУФЧЕООП, РЕТЕДБЧ ЕНХ РБТБНЕФТЩ start (ЪБРХУЛ), stop (ПУФБОПЧЛБ) Й ДТХЗЙЕ (ЪБЧЙУЙФ ПФ УЕТЧЙУБ). б НПЦЕФЕ ЧПУРПМШЪПЧБФШУС ЛПНБОДПК service:
# service ‘ЙНС_УЕТЧЙУБ’ ‘start|stop|..’
ъДЕУШ ‘ЙНС УЕТЧЙУБ’ — ЬФП ЙНС ЖБКМБ Ч ЛБФБМПЗЕ /etc/rc.d/init.d.
оБРТЙНЕТ ДМС ЪБРХУЛБ Apache НПЦОП ЙУРПМШЪПЧБФШ ЛПНБОДХ:
# rcapache start

тЕДБЛФЙТПЧБФШ ХТПЧОЙ ЪБРХУЛБ НПЦОП ЧТХЮОХА, Б НПЦОП Й У РПНПЭША РТПЗТБНН-ЛПОЖЙЗХТБФПТПЧ:
Ч Fedora — ЛПОЖЙЗХТБФПТ system-config-services;
Ч Ubuntu ДП ЧЕТУЙЙ 9.04 РТЙНЕОСЕФУС ЛПОЖЙЗХТБФПТ services-admin, Б Ч ЧЕТУЙЙ 9.10 УМЕДХЕФ ЙУРПМШЪПЧБФШ ЛПОЖЙЗХТБФПТ bum, ЛПФПТЩК ОХЦОП ХУФБОПЧЙФШ ПФДЕМШОП:
sudo apt-get install bum

2) уЙУФЕНБ ЙОЙГЙБМЙЪБГЙЙ initng
Initng — ЬФП УЙУФЕНБ ЙОЙГЙБМЙЪБГЙЙ Linux УМЕДХАЭЕЗП рПЛПМЕОЙС, РПЪЧПМСАЭБС УХЭЕУФЧЕООП ХУЛПТЙФШ ЪБРХУЛ Linux.

б ЪБ УЮЕФ ЮЕЗП ДПУФЙЗБЕФУС ХУЛПТЕОЙЕ ЪБРХУЛБ Linux? B РПЮЕНХ ОБН Ч ДБМШОЕКЫЕН РТЙДЕФУС РЕТЕКФЙ ОБ initng? ч РТПГЕУУЕ ЪБЗТХЪЛЙ Linux ЪБРХУЛБЕФУС СДТП, ПОП НПОФЙТХЕФ ЛПТОЕЧХА ЖБКМПЧХА УЙУФЕНХ Й ЪБРХУЛБЕФ РТПЗТБННХ init йНЕООП init ЧЩРПМОСЕФ ЧУА ДБМШОЕКЫХА ЙОЙГЙБМЙЪБГЙА УЙУФЕНЩ. рЕТЧЩН ДЕМПН init ЮЙФБЕФ РПМЕ initdefauit Ч ЖБКМЕ /etc/inittab — ЬФП ХТПЧЕОШ ЪБРХУЛБ РП ХНПМЮБОЙА. ч ЪБЧЙУЙНПУФЙ ПФ ХТПЧОС ЪБРХУЛБ init ЪБРХУЛБЕФ УГЕОБТЙЙ, ОБИПДСЭЙЕУС Ч ПДОПН ЙЪ РПДЛБФБМПЗПЧ ЛБФБМПЗБ /etc/rУ.d.
Initng ТБВПФБЕФ ЙОБЮЕ. пОБ ОЕ ЪБРХУЛБЕФ УГЕОБТЙЙ, Б УБНБ ЧЩРПМОСЕФ ДЕКУФЧЙС ХЛБЪБООЩЕ Ч ЖБКМБИ, ЙЗТБАЭЙИ ТПМШ УГЕОБТЙЕЧ ЙОЙГЙБМЙЪБГЙЙ. ч УМХЮБЕ ЦЕ У ПВЩЮОЩН init ОБ УБНПН ДЕМЕ ЙОЙГЙБМЙЪЙТХЕФ УЙУФЕНХ bash, a init ФПМШЛП ЪБРХУЛБЕФ ОХЦОЩЕ УГЕОБТЙЙ — ФП ЕУФШ ЧЩРПМОЕОЙЕ РЕТЕДБЕФУС ДТХЗПК РТПЗТБННЕ (bash), ЛПФПТБС ЬФЙ УГЕОБТЙЙ Й ЧЩРПМОСЕФ. A initng УБНБ, ВЕЪ РПУТЕДОЙЛПЧ, ЧЩРПМОСЕФ ЙОЙГЙБМЙЪБГЙА УЙУФЕНЩ, ЪБ УЮЕФ ЮЕЗП Й ДПУФЙЗБЕФУС УПЛТБЭЕОЙЕ ЧТЕНЕОЙ ЪБЗТХЪЛЙ (Л УПЦБМЕОЙА РПЛБ УЙУФЕНБ initng ОЕ РПМХЮЙМБ ПУПВПЗП ТБУРТПУФТБОЕОЙС — ПОБ ОЕ ЙУРПМШЪХЕФУС ОЙ Ч ПДОПН УПЧТЕНЕООПН ДЙУФТЙВХФЙЧЕ).

3) уЙУФЕНБ ЙОЙГЙБМЙЪБГЙЙ upstart

уЙУФЕНБ ЙОЙГЙБМЙЪБГЙЙ upstart ВЩМБ ТБЪТБВПФБОБ уЛПФПН дЦЕКНУПН тЕНОБОФПН (Scott James Remnant) ДМС ДЙУФТЙВХФЙЧБ Ubuntu, ПДОБЛП upstart НПЦОП У ХУРЕИПН ЙУРПМШЪПЧБФШ Ч ДТХЗЙИ ДЙУФТЙВХФЙЧБИ.

3.1. лБЛ ТБВПФБЕФ upstart
ч upstart ЕУФШ УПВУФЧЕООЩК РТПГЕУУ init, ЛПФПТЩК ЪБРХУЛБЕФУС РТЙ ЪБРХУЛЕ УЙУФЕНЩ (БОБМПЗЙЮОП РТoЗТБННБН init Й initng). рТЙ ЪБРХУЛЕ ЗЕОЕТЙТХЕФУС УПВЩФЙЕ startup, РТЙ ЪБЧЕТЫЕОЙЙ ТБВПФЩ — shutdown, РТЙ ОБЦБФЙЙ ОБ Ctrl+Alt+Del — УПВЩФЙЕ ctrl-alt-delete.

чЩ НПЦЕФЕ УПЪДБЧБФШ УПВУФЧЕООЩЕ УПВЩФЙС. чПФ ОЕВПМШЫПК РТЙНЕТ УПЪДБОЙС УПВЩФЙС my_event:
on my_event
eИЕУ echo event received
console output

рТЙ РПМХЮЕОЙЙ ЬФПЗП УПВЩФЙС ОБ ЛПОУПМШ ВХДЕФ ЧЩЧЕДЕОП УППВЭЕОЙЕ:
event received

жБКМЩ УПВЩФЙК ИТБОСФУС Ч ЛБФБМПЗЕ /etc/event.d. уПЪДБКФЕ Ч ЬФПН ЛБФБМПЗЕ ЖБКМ У ЙНЕОЕН my_event Й РПНЕУФЙФЕ Ч ОЕЗП РТЙЧЕДЕООЩК ЛПД. рПУМЕ ЬФПЗП ЧЩЪЧБФШ УПВЩФЙЕ НПЦОП ЛПНБОДПК:
initctl emit my_event

вПМЕЕ РПДТПВОХА ЙОЖПТНБГЙА ПВ ЬФПК ЛПНБОДЕ НПЦОП РТПЮЙФБФШ ОБ УФТБОЙГЕ ТХЛПЧПДУФЧБ: man initctl.

3.2. лПОЖЙЗХТБГЙПООЩЕ ЖБКМЩ upstart
йУУМЕДХКФЕ УПДЕТЦЙНПЕ ЛБФБМПЗБ /etc/event.d. ч ОЕН ЧЩ ОБКДЕФЕ ЖБКМЩ УПВЩФЙК РЕТЕИПДБ ОБ ПРТЕДЕМЕООЩК ЪБРХУЛ.

уБНПЕ ЙОФЕТЕУОПЕ Ч upstart — ХТПЧОЙ ЪБРХУЛБ ЪДЕУШ — ЧЙТФХБМШОЩЕ. ч upstart, ВМБЗПДБТС УПВЩФЙКОП-ПТЙЕОФЙТПЧБООПНХ ТЕЦЙНХ, ЧППВЭЕ ПФРБДБЕФ ОЕПВИПДЙНПУФШ Ч ХТПЧОСИ ЪБРХУЛБ, РПДПВОЩИ ФЕН, ЛПФПТЩЕ ЙУРПМШЪПЧБМЙУШ Ч init. ъБЗТХЪЛБ ФПЗП ЙМЙ ЙОПЗП УЕТЧЙУБ РТПЙУИПДЙФ РТЙ ОБМЙЮЙЙ ОХЦОПЗП БРРБТБФОПЗП ПВЕУРЕЮЕОЙС: ОЕФ ХУФТПКУФЧБ — ОЕ ВХДЕФ ЪБЗТХЦЕО Й УЕТЧЙУ, ФТЕВХАЭЙК ЕЗП.

Upstart НПЦОП ЙУРПМШЪПЧБФШ Ч ТЕЦЙНЕ «ЗПТСЮЕК ЪБНЕОЩ» — ЕУМЙ ЧЩ Ч РТПГЕУУЕ ТБВПФЩ УЙУФЕНЩ РПДЛМАЮЙФЕ ЛБЛПЕ-ФП ХУФТПКУФЧП, ОБРТЙНЕТ, PCMCIA-ЛБТФХ ЙМЙ USB-ХУФТПКУФЧП, ВХДЕФ УЗЕОЕТЙТПЧБОП УППФЧЕФУФЧХАЭЕЕ УПВЩФЙЕ. рПУМЕ ЬФПЗП ВХДХФ ЪБРХЭЕОЩ ЧУЕ ОЕПВИПДЙНЩЕ ДМС ПВЕУРЕЮЕОЙС ТБВПФЩ ЬФПЗП ХУФТПКУФЧБ РТПГЕУУЩ. фБЛ, РТЙ РПДЛМАЮЕОЙЙ УЕФЕЧПК ЛБТФЩ PCMCIA ВХДЕФ УЗЕОЕТЙТПЧБОП УПВЩФЙЕ network-interface-added, ЛПФПТПЕ ЪБРХУФЙФ РТПГЕУУ ОБУФТПКЛЙ УЕФЕЧПК ЛБТФЩ РП DHCP, РТЙ ЬФПН ВХДЕФ УЗЕОЕТЙТПЧБОП ОПЧПЕ УПВЩФЙЕ — network-interface-up Й Ф.Д. еУФЕУФЧЕООП, ЕУМЙ ОЕФ УЕФЕЧЩИ ХУФТПКУФЧ, ФП Й УППФЧЕФУФЧХАЭЙЕ ЙН УПВЩФЙС ОЕ ВХДХФ ЗЕОЕТЙТПЧБФШУС.

Читать еще:  Установка jupiter notebook linux

Системы инициализации Linux

В операционной системе Linux и других системах семейства Unix после завершения загрузки ядра начинается инициализация Linux системы, сервисов и других компонентов. За это отвечает процесс инициализации, он запускается ядром сразу после завершения загрузки, имеет PID 1, и будет выполняться пока будет работать система.

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

За время развития операционных систем были созданы различные системы инициализации Linux. В разных дистрибутивах использовались разные системы. В этой статье мы рассмотрим лучшие системы инициализации, которые вы можете сейчас использовать. Мы начнем с более старых систем с меньшим функционалом, чтобы понять с чего все начиналось, затем подойдем к более новым, созданным в последнее время.

1. System V Init

System V или SysV — это довольно старая, но до сих пор еще популярная система инициализации Linux и Unix подобных операционных систем. Она была основой для создания многих других систем инициализации, а также первой коммерческой системой инициализации разработанной для Unix в AT&T. Она была разработана еще в 1983 году.

Почти все дистрибутивы Linux изначально использовали SysV. Исключением была только Gentoo, в которой использовалась собственная система инициализации и Slackware, с инициализацией в стиле BSD.

Основные возможности SysV:

  • Написание файлов запуска служб на bash;
  • Последовательный запуск служб;
  • Сортировка порядка запуска с помощью номеров в именах файлов;
  • Команды для запуска, остановки и проверки состояния служб.

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

С момента ее разработки прошло много лет и из-за некоторых недостатков были разработаны другие системы для ее замены, они хоть и имели новые функции и были более эффективны, но они были по-прежнему совместимы с SysV.

2. OpenRC

OpenRC — это система инициализации Linux и Unix подобных операционных систем совместимая с Sys V Init и поддерживающая систему зависимостей во время запуска. Она приносит некоторые улучшения в SysV, и как и другие системы инициализации Linux, совместима с ней, но вы должны иметь в виду, что OpenRC не заменяет полностью файл /sbin/init. Эта система инициализации используется в Gentoo и дистрибутивах BSD.

Кроме стандартных возможностей SysV, здесь поддерживается также:

  • Поддержка зависимостей служб;
  • Поддержка параллельного запуска служб;
  • Поддерживает настройку в одном отдельном файле;
  • Работает как демон;

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

3. Systemd

Systemd — это новая система инициализации Linux. Она была введена по умолчанию в Fedora 15, а сейчас используется почти во всех популярных Linux дистрибутивах. Это не только инициализирующий процесс, поддерживающий огромное количество возможностей, но и набор инструментов для управления службами и этими возможностями из системы. Основная цель — иметь полный контроль над всеми процессами во время их запуска и на протяжении всего выполнения.

Systemd очень сильно отличается от всех существующих систем инициализации, тем как она работает с сервисами, и даже конфигурационными файлами сервисов. Совместимости со скриптами SysV нет, их нужно преобразовать в linux systemd unit файлы.

Вот ее основные особенности:

  • Понятный, простой и эффективный дизайн;
  • Параллельная загрузка служб на основе зависимостей;
  • Лучший APIv;
  • Поддерживается завершение дополнительных процессов;
  • Поддерживается собственный журнал с помощью journald;
  • Поддерживается планирование заданий с помощью таймеров Systemd;
  • Хранение журналов в бинарных файлах;
  • Сохранение состояния сервисов linux systemd для возможного восстановления;
  • Улучшенная интеграция с Gnome;
  • Запуск сервисов по требованию;

4. Upstart

Upstart — это система инициализации на основе событий, разработанная в Canonical и призванная заменять SysV. Она может запускать системные службы, выполнять над ними различные задачи, инспектировать их во время выполнения, а также выполнять нужные действия в ответ на события в системе.

Это гибридная система инициализации, она использует как SysV скрипты запуска, так и файлы служб Systemd. Вот ее самые заметные особенности:

  • Изначально разработанная для Ubuntu, но может использоваться и в других дистрибутивах;
  • Запуск и остановка служб на основе событий;
  • Генерация событий во время запуска и остановки служб;
  • События могут быть отправлены обычными процессами;
  • Связь с процессом инициализации через DBus;
  • Пользователи могут запускать и останавливать свои процессы;
  • Перезапуск служб, которые неожиданно завершились;
  • Параллельная загрузка сервисов;
  • Автоматический перезапуск служб;

Большинство ее возможностей работают благодаря интеграции с системой инициализации Systemd.

5. Runinit

Runinit — это кроссплатформенная система инициализации, которая может работать в GNU Linux, Solaris, BSD и MacOS. Это отличная альтернатива для SysV с поддержкой мониторинга состояния служб.

Здесь есть некоторые интересные особенности, которых нет в других системах инициализации:

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

Выводы

Как я уже говорил, система инициализации запускает и управляет всеми другими процессами в системе Linux. SysV до недавнего времени была основной системой инициализации в большинстве дистрибутивов Linux, но из-за некоторых своих недостатков для нее было разработано несколько замен, в том числе Systemd.

Какие системы инициализации Linux используются в вашем дистрибутиве? В списке обозначены не все существующие системы, какую из них нужно добавить в список? Напишите в комментариях!

linux-notes.org

Иногда интересно какая же инициализация используется на сервере и в моей статье «Система инициализации в Unix/Linux» я расскажу как можно узнать какая система инициализации используется на сервере.

Основные системы инициализации:

  • sysvinit — Стиль SysVinit существовал еще со времен SystemV, которая была разработана еще в 1983 году. Это установило стандарт инициализации POSIX систем.
  • upstart — система инициализации ОС, которая управляет запуском демонов в течение загрузки системы, их остановку, а также управляет ими во время работы системы. Первоначально была разработана для дистрибутива Ubuntu, но затем стала использоваться и в других дистрибутивах Linux, например в Fedora (впоследствии была заменена systemd), как замена UNIX System V init.
  • systemd — это системный менеджер, (демон для инициализации других демонов в Linux), который пришел и почти заменил SysV. Основное отличие — распределенный запуск служб в процессе загрузки системы, что позволяло существенно ускорить запуск операционной системы.
  • launchd — система инциализации системы с открытым исходным кодом, используемая в ОС Mac OS X. Процесс имеет PID 1 и занимается тем, что запускает другие процессы и перезапускает их в случае сбоя, то есть выполняет функции init UNIX и Linux (в новых версиях Linux осуществляется переход на systemd).
Читать еще:  Исправление ошибки isdone dll

Команды по системам инициализации в Unix/Linux ОС:

Система инициализации в Unix/Linux

Существует несколько способов проверить это, сейчас я покажу как это сделать.

-=== СПОСОБ 1 — проверка PID процессов==-

Например, Ubuntu до версии 14 использовала систему инициализацию Upstart чтобы проверить это, выполните:

Например, Ubuntu 16 и CentOS 7 использовала систему инициализацию SystemD чтобы проверить это, выполните:

Или если используется Ubuntu 16, можно выполнить:

Или, другой пример:

Или (если чтобы было красиво):

Например, CentOS 6 использовала систему инициализацию Upstart, но с init процессом и чтобы проверить это, выполните:

-=== СПОСОБ 2 — проверка файлов==-

Запускаем следующую команду:

Если на сервере используется init инициализация, то она отобразится при выводе. В противном случае — скажет что такой команды нет.

ИЛИ, можно выполнить:

Вот вам еще довольно стоящий пример:

-=== СПОСОБ 3 — с помощью ФС==-

Можно запустить следующую команду:

Команда что выше, проверяет exe симлинку в папке /proc/1. А собственно «1» – это PID 1-го процесса.

-=== СПОСОБ 4 — с помощью готового bash скрипта==-

И прописываем в него:

Можно добавить прав на исполнение:

И для запуска, юзаем:

-=== СПОСОБ 5 — с помощью пакетного менеджера==-

Если используете centOS/RedHat/Fedora/Suse, то можно выполнить:

Если используете Debian/Ubuntu/Mint/др, то можно выполнить:

-=== СПОСОБ 6 — с помощью lsof==-

Так же, можно выполнить:

-=== СПОСОБ 7 — с помощью ls и which==-

Вот и все. Если имеются другие примеры проверки инициализации, пишите в комментариях. Тема «Система инициализации в Unix/Linux» завершена.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Mint’ы и системы инициализации

Так вот и возникают нездоровые сенсации.
Профессор Выбегалло

Дистрибутив Mint в своей Ubuntu based ипостаси (которую разработчики официально называют Linux Mint, далее LM) считается самым популярным из всех дистрибутивов этой операционной системы. Мнение это основано на рейтинге Distrowatch’а, в котором LM вот уже пятый год стабильно занимает 1-е место, причём с приличным отрывом от ближайшей соперницы (каковой, за исключением 2012 года, столь же стабильно выступает родительская Ubuntu).

При этом обычно забывают, что дистрибутивы на Distrowatch’е ранжируются по посещаемости их страниц на этом сайте. И потому этот рейтинг ни в коей мере не отражает реального распространения ни одной из входящих в него систем среди широких народных масс. Скорее наоборот: «действующие линуксоиды» давно сделали свой выбор, и по страницам Distrowatch’а табунами не шастают. Да и реальные применители LM обычно обращаются на тематические ресурсы типа The Linux Mint Blog и Segfault. Так что положение этого дистрибутива в рейтинге скорее очерчивает круг потенциально им интересующихся. Ну и известность — то, что его имя, как говорится, на слуху. Причём на слуху у тех, кто о самом по себе Mint’е часто имеет весьма смутное представление — хотя эти самый «те» могут быть прекрасными знатоками более иных систем.

В результате вокруг Mint’а вообще и собственно LM в частности концентрируется столько слухов, как вокруг ни одного другого дистрибутива. А посвящённые ему новости часто напоминают сообщения известного агентства ОГГ (Одна Гражданка Говорила) — особенно в русскоязычном преломлении, добавляющем пикантности.

Например, не так давно «прошёл слух», что разработчики LM собираются отказаться от пакетной базы Ubuntu как его основы, и перейти на кодовую базу Debian. Слух — он и есть слух, докопаться до его первоисточников обычно невозможно. Однако он вызвал волну опровержений. Хотя сами участники проекта Mint о приписываемых им «намерениях» — не подозревали ни сном, ни духом. А всего только выпустили релиз-кандитат своей второй системы Linux Mint Debian Edition 2 Betsy (LMDE), которая, как легко понять из названия, действительно базируется, со дня своего возникновения в 2011 году, на Debian’е.

Новость же, волной прокатившаяся по соответствующим ресурсам, — и того хлеще: разработчикам проекта Mint приписали намерение поддерживать в своих дистрибутивах сразу три системы инциализации, sysvinit, upstart и systemd. Новость эта мгновенно обросла комментариями, в том числе и жалостливыми: как же они, бедолаги, смогут поддерживать сразу три системы инициализации?

И сама новость, и особенно комментарии к ней способны оказать деморализующей действие на потенциальных применителей Mint’а — на тех, кто ещё только присматривается к этому дистрибутиву. А поскольку, по моему скромному мнению, этот дистрибутив, в одной из своих редакций, подходит, без всяких оговорок, очень и очень многим применителями Linux’а вообще, считаю своим долгом внести ясность в данный вопрос.

Для начала нужно сказать, что участники проекта Mintсами по себе не поддерживают ни одну систему инициализации. А используют ту, которая применяется в «базовом» дистрибутиве — Ubuntu LTS для LM и Debian stable для LMDE. Собственный же их вклад в дистроение ограничивается разработкой «титульных» рабочих сред (Cinnamon — практически целиком, MATE — в значительной степени) и дистрибутив-специфических утилит.

Соответственно, нынче существует две линии развития проекта Mint: LM 17.X с «именными» субрелизами (на данный момент — 17.1 Rebecca) и LMDE 2 Betsy. Первая базируется на Ubuntu 14.04, и будет оставаться текущей ещё год, вплоть до выхода очередного «долгоиграющего» релиза Ubuntu, после чего в течении ещё трёх лет будет состоять в статусе поддерживаемой. Поскольку Ubuntu 14.04 LTS использует в качестве системы инициализации upstart, ни малейших sysvinit или systemd в LM 17.X нет и в означенные выше сроки не предвидится.

Читать еще:  Sql developer linux

Основой текущего релиза LMDE 2 Betsy является стабильная версия Debian 8 Jessie, и будет оставаться таковой до конца жизненного цикла последней (а релиз-цикл Debian’а, как все знают, штука не предсказуемая). А поскольку в Jessie, напротив, никогда не было никакого upstart, а ныне официально нет и намёка на sysvinit, даже в реликтовом виде, как в Ubuntu 15.04, то и в Betsy ничего подобного нет и не будет в обозримом будущем.

Правда, теоретическая возможность прикрутить sysvinit к LMDE 2 (как и к Jessie — можно найти даже неофициальные образы таких сборок) имеется (пока?). Вот только есть ли смысл? Ибо Debian 8 (как и, соответственно, Betsy) — единственный, на моей памяти, дистрибутив, уже первая systemd’изированная версия которого заработала сразу и безупречно, по крайней мере, нечувствительно для применителя. Во-всех остальных дистрибутивах внедрение systemd начиналось с того, что там хоть что-нибудь, да ломали…

Так что никаких оснований для паники или сожаления о тяжкой доле Mint’остроителей нет. А есть лишний повод вспомнить слова профессора Выбегалло, вынесенные в качестве эпиграфа. И задуматься над более общим вопросом,

Я прекрасно понимаю авторов подобных сообщений: нынче по настоящему интересных новостей в мире Open Source куда меньше, чем новостных ресурсов. И ведущие их вынуждены хвататься за соломинку — в том числе за обсуждение вопроса, будет или не будет цирковой артист выполнять свой коронный номер поедания бочки с говном.

Сложнее понять авторов комментариев таких новостей. Большинство из которых знают о Mint’е только понаслышке, но спешат отметиться своим мнением. Руководствуясь, вероятно, словами Бонарпартия, известного:

Плох тот комментатор, который не считает себя умнее автора.

Увы, в отличие от ребят будущего императора, маршальского жезла никто из комментаторов пока не заслужил.

И последнее. Прошу не рассматривать этот памфлет как повод для дискуссии о системах ингициализации, особенно в терминологии великого пролетарского поэта Владимира Маяковского.

Уровни инициализации SVR4

Ход занятия

Каждый раз включая компьютер , Вы наблюдаете процесс загрузки системы. Сегодня мы с Вами попробуем рассмотреть этот процесс с установленной операционной системой Linux подробнее.

Итак, Вы нажали кнопку питания на системном блоке ПК. Устройства Вашего компьютера проходят автотестирование. Процессор автоматически стартует программу, находящуюся в нулевой ячейке памяти – BIOS ( Basic Input Output System — Базовая Система Ввода Вывода), который в первую очередь проверяет исправность всех необходимых (именно необходимых) для работы ПК устройств.

После инициализации BIOS , определения таких устройств как жесткие диски, CDROM и т.п., BIOS передает управление программе загрузчика, находящегося в MBR (Master Boot Record — основная загрузочная запись ) на устройстве согласно порядку в настройках CMOS (обычно это CD, HD, USB-устройство или сеть ).

В IBM PC совместимых компьютерах размер загрузочной записи ограничен 512 байтами. Это очень мало для полноценной инициализации системы, поэтому обычно загрузчики Linux ( LILO или GRUB , как в нашем случае) разделяются на 2 части (stage1 и stage2) и первая из них располагается в MBR . Её задача состоит в том, чтобы инициализировать вторую часть загрузчика.

Вторая часть загрузчика, как правило, предоставляет меню для выбора операционной системы, которая будет загружена, или версии ядра, с которым будет загружен Linux. Но основная задача второй части загрузчика состоит в том, чтобы корректно загрузить в память ПК ядро Linux и передать ему управление.

Загрузившись в память , ядро инициализирует устройства, подключает корневую файловую систему, а также файловую систему /dev , запускает процесс /sbin/init . Так как исполняемый файл init находится в каталоге /sbin , то не рекомендуется выделять этот каталог в отдельный раздел. Как уже говорилось выше, на момент инициализации ядра примонтирована только корневая ФС. Если доступа к каталогу /sbin не будет, то загрузка системы потерпит фиаско.

Процесс init запускается и анализирует файл /etc/inittab . С этого момента необходимо пояснить, что мы с Вами рассматриваем вариант загрузки Unix SysV. Она отличается от загрузки BSD-like систем. И хотя Linux может работать как с первым, так и со вторым вариантом загрузки, подавляющее большинство дистрибутивов используют инициализацию системы SysV ( исключение , например, составляет дистрибутив Gentoo). Хотя BSD-like стиль загрузки проще, загрузка в стиле SysV дает на мой взгляд больше возможностей для точной настройки системы.

В SysV стиле загрузки существует понятие уровней запуска или, правильнее, уровней инициализации системы. По умолчанию, в системе использовано 7 уровней инициализации:

  1. 0 — останов системы.
  2. 1 — загрузка в однопользовательском режиме
  3. 2 — загрузка в многопользовательском режиме без поддержки сети
  4. 3 — загрузка в многопользовательском режиме с поддержкой сети
  5. 4 — не используется
  6. 5 — загрузка в многопользовательском режиме с поддержкой сети и графического входа систему
  7. 6 — перезагрузка

Открыв для просмотра файл /etc/inittab , Вы увидите примерно следующий текст (только снабженный комментариями):

Инициализировав основные параметры системы, init запускает скрипты инициализации из каталога /etc/rc.d/

В каталоге /etc/rc.d располагается дерево каталогов, имена которых отличаются лишь одним символом — rc*.d , где * — номер уровня инициализации, а также каталога init.d , внутри которого находятся управляющие скрипты для системных сервисов. Каждый скрипт принимает минимум 2 параметра – start ( запуск сервиса) и stop ( останов сервиса).

Внутри каталогов /etc/rc.d/rc*.d находятся ссылки на скрипты из каталога /etc/rc.d/init.d в виде S|K#name . Буква S означает что при вызове скрипта процессу init необходимо вызвать скрипт с параметром «start» (от слова Start), а буква K — с параметром stop (от слова Kill ). Дальше идет число . Все скрипты выполняются в порядке возрастания чисел. Если у двух скриптов одинаковые числа, то такие скрипты будут выполняться в прямом алфавитном порядке.

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

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector