/ / Какво представляват "Runlevels" в Linux?

Какво представляват „Runlevels“ в Linux?

образ

Когато Linux се зарежда, той въвежда по подразбиранеrunlevel и изпълнява скриптове за стартиране, свързани с този runlevel. Можете също така да превключвате между нива на въртене - например има ниво, проектирано за операции по възстановяване и поддръжка.

Традиционно, Linux използва init във V-стил на систематаскриптове - въпреки че новите init системи в крайна сметка ще остарят традиционните нива, те все още не са. Например, Upburt системата на Ubuntu все още използва традиционни скриптове във V-стил на системата.

Какво е ниво на движение?

Когато Linux се зарежда, тя стартира в него процеси. init е отговорен за стартирането на другите процеси в системата. Например, когато стартирате вашия Linux компютър, ядрото започва init и init изпълнява скриптове за стартиране, за да инициализира вашия хардуер, да създаде мрежа и да стартира вашия графичен десктоп.

Въпреки това, няма само един единствен набор отскриптове за стартиране init изпълнява. Има няколко нива на стартиране със собствени скриптове за стартиране - например, един runlevel може да доведе до работа в мрежа и да стартира графичния десктоп, докато друг runlevel може да остави мрежата деактивирана и да пропусне графичния десктоп. Това означава, че можете да преминете от „графичен режим на работния плот“ в „режим на текстова конзола без мрежа“ с една команда, без ръчно стартиране и спиране на различни услуги.

По-конкретно, init изпълнява разположените скриптовев конкретна директория, която съответства на ниво на изпълнение. Например, когато въведете runlevel 3 в Ubuntu, init изпълнява скриптите, разположени в директорията /etc/rc3.d.

образ

Поне така се работи с традиционнотоSystem V init система - Linux дистрибуциите започват да заменят старата System V init система. Докато Ubuntu Upstart понастоящем поддържа съвместимост със SysV init скриптове, това вероятно ще се промени в бъдеще.

The Runlevels

Някои нива на въртене са стандартни за Linux дистрибуции, докато някои нива варират от разпределение до дистрибуция.

Следните етапи са стандартни:

  • 0 - спиране (Изключва системата.)
  • 1 - Режим за един потребител (Системата стартира в режим на суперпотребител без стартиране на демони или работа в мрежа. Идеална за зареждане в среда за възстановяване или диагностика.)
  • 6 - Рестарт

Нивата на движение 2-5 варират в зависимост от разпределението. Например, в Ubuntu и Debian, runlevels 2-5 са едни и същи и осигуряват пълен мулти-потребителски режим с работа в мрежа и графично влизане. В Fedora и Red Hat, runlevel 2 осигурява многопотребителски режим без работа в мрежа (само за вход в конзолата), runlevel 3 осигурява многопотребителски режим с работа в мрежа (само за вход в конзолата), runlevel 4 не се използва, а runlevel 5 осигурява многопотребителски режим с работа в мрежа и графичен вход.

Преминаване към различно ниво на изпълнение

За да превключите на различно ниво, докато системата вече работи, използвайте следната команда:

sudo telinit #

Заменете # с номера на нивото на изпълнение, на което искате да преминете. Пропуснете sudo и стартирайте командата като root, ако използвате дистрибуция, която не използва sudo.

образ

Зареждане директно на конкретна ниво на изпълнение

Можете да изберете ниво на въртене, за да стартирате от зареждащия механизъм - Grub, например. В началото на процеса на зареждане натиснете клавиш за достъп до Grub, изберете записа за зареждане и натиснете e, за да го редактирате.

sshot-1

Можете да добавите единичен до края на Linux ред, за да влезете в ниво на работа на един потребител (runlevel 1). (Натиснете Ctrl + x, за да стартирате след това.) Това е същото като опцията за режим на възстановяване в Grub.

образ

Традиционно можете да посочите число като параметър на ядрото и да заредите на това ниво, например, като използвате 3 вместо единичен за зареждане до runlevel 3. Изглежда обаче, че това не работи върху най-новите версии на Ubuntu - изглежда, че Upstart не го позволява. По същия начин, как ще промените ниво на изпълнение по подразбиране ще зависи от вашата дистрибуция.


Докато демонът на Ubuntu Upstart все още подражава наSystemV init system, голяма част от тази информация ще се промени в бъдеще. Например Upstart е базиран на събития - той може да спира и стартира услуги, когато се случват събития (например услуга може да стартира, когато хардуерно устройство е свързано към системата, и да спре, когато устройството бъде премахнато.) Fedora също има свой наследник to init, systemd.