Начална » как да » Какво представляват “Runlevels” на Linux?

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

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

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

    Какво е Runlevel?

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

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

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

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

    Нива на изпълнение

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

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

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

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

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

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

    sudo telinit #

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

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

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

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

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


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