Линук Чизме

Испоставило се да процес покретања нема много:

1. Покретачки Проналази слике кернела на диску, учитава се у меморију, и почиње га.
2. Језгро покрене уређаје и СТИ драјвери.
3. Кернел монтира роот filesystem.
4. Језгро почиње инит звао да закажете.
5. прва поставља остатак од процеса у покрету.
6. Последњи процеси који инит почиње као део боот секвенце омогућавају вам да се пријавите.

Идентификовање сваке фазе процеса покретања је непроцењиво за решавање проблема са покретањем система и разумевање system у целини. Да бисте започели, убаците покретачки програм у почетни екран, што је почетни екран или упит који добијете након што се рачунар изврши самотестирање, питајући који рад system трчати. Након што одаберете, покретачки програм покреће Линук језгро предајући контролу над system до језгра.

Постоји детаљна дискусија језгра на другом месту у овој књизи из које је одломак овај чланак. Овај чланак покрива језгро иницијализација фаза, фаза у којој кернел штампа гомилу порука о хардверу присутном на system. Кернел започиње инит одмах након што прикаже поруку у којој се објављује да је кернел монтирао корен filesystem:

ВФС: ​​Монтирани роот (ект2) filesystem) само за читање.

Убрзо након тога, видећете поруку о покретању инит-а, након чега следи system сервисне поруке за покретање и на крају ћете добити неку врсту упита за пријаву.

НАПОМЕНЕ На Ред Хат Линук, почетна напомена је посебно очигледна, јер вас „поздравља“ у „Ред Хат Линук-у“. Све поруке након тога приказују успех или неуспех у заградама на десној страни екрана.

Већи део овог поглавља бави прва, јер је битан елеменат у боот секвенце имате највише контроле.
инит

У инит-у нема ништа посебно. То је програм као и сваки други на Линуку system, и наћи ћете га у / сбин заједно са другим system бинарне датотеке. Главна сврха инит-а је покретање и заустављање других програма у одређеном низу. Све што морате знати је како функционише овај низ.

Постоји неколико различитих варијација, али већина Линук дистрибуција користи System Овде се разговара о В стилу. Неке дистрибуције користе једноставнију верзију која подсећа на БСД инит, али мало је вероватно да ћете се сусрести са тим.

Рунлевел

У било ком тренутку на Линуку system, изводи се одређени основни скуп процеса. Ово стање macхине се назива нивоом трчања и означава се бројем од 0 до 6. Тхе system проводи већину свог времена на једном нивоу. Међутим, када искључите macхине довн, инит се пребацује на други ниво покретања како би прекинуо system услуге на уредан начин и да кажу језгру да престане. Још један ниво покретања је за једнокориснички режим, о чему ћемо касније разговарати.

Најлакши начин да се дохватите кваке на нивоима је испитивање инит конфигурације file, / етц / иниттаб. Потражите линију као што је следеће:

ИД: 5: инитdefault:

Ова линија значи да default рунлевел на system је 5. Све линије у иниттабу file узмите овај облик, са четири поља одвојена колонама која се јављају следећим редоследом:
# Јединствени идентификатор (кратка ниска, као што су личне у претходном примеру)
# Примењује рунлевел број (и)
# Акција коју инит треба да предузме (у претходном примеру, радња је подешавање default ниво трчања до 5)
# Команда извршава (опционо)

Не постоји наредба за извршавање у претходном покретањуdefault пример јер наредба нема смисла у контексту постављања default рунлевел. Погледајте мало даље у иниттаб, док не видите линију попут ове:

лКСНУМКС: КСНУМКС: ваит :/ етц / рц.д / РЦ КСНУМКС

Ова линија покреће већину system конфигурација и услуге кроз рц * .д и инит.д директоријуме. Можете видети да је инит подешен за извршавање наредбе зване /етц/рц.д/рц 5 када је у нивоу покретања 5. Акција чекања говори када и како инит покреће наредбу: рун рц 5 када enterинг. рунлевел 5, а затим причекајте да се ова наредба заврши пре него што учините било шта друго.

Постоји неколико различитих радњи у addитион то инитdefault и сачекајте, посебно у вези са управљањем напајањем, а страница приручника за иниттаб (5) говори вам све о њима. Они са којима ћете се највероватније сусрести објашњени су у следећим одељцима.

респавн

Акција поновног покретања узрокује да инит покрене наредбу која слиједи, а ако наредба заврши с извршавањем, да је поново покрене. Вероватно ћете на свом иниттабу видети нешто слично овом реду file:

КСНУМКС: КСНУМКС: респавн :/ сбин / мингетти ттиКСНУМКС

Гети програми пружају пријава упутства. Претходна линија је за прву виртуелну конзолу (/ дев / ттиКСНУМКС), један видиш Када притиснете АЛТ или ЦОНТРОЛ-АЛТ-ФКСНУМКС ФКСНУМКС. Респавн акција доноси брзу пријаву назад након што се одјавите.

ctrlалтдел

ctrlалтдел ацтион контролише шта system то ради када притиснете ЦОНТРОЛ-АЛТ-ДЕЛЕТЕ на виртуелној конзоли. На већини systemс, ово је нека врста наредбе за поновно покретање система помоћу наредбе за искључивање.

сисинит

Радња сисинит је прва ствар коју би инит требао покренути када се покрене, и пре тога enterу свим нивоима.

Како започети процеси у рунлевел

Сада сте спремни да научите како да покренете system услуге, непосредно пре него што вам омогући да се пријавите. Подсетите се ове иниттаб линије из раније:

лКСНУМКС: КСНУМКС: ваит :/ етц / рц.д / РЦ КСНУМКС

Овај мали линија изазива многе друге програме. РЦ је скраћеница за извршне команде, а чућете људи се односе на команде као скрипти, програма или услуге. Дакле, где су ове команде, у сваком случају?

За рунлевел 5 у овом примеру су наредбе вероватно или у /етц/рц.д/рц5.д или /етц/рц5.д. Рунлевел 1 користи рц1.д, рунлевел 2 користи рц2.д, и тако даље. Можда ћете наћи следеће items у директорију рц5.д:

СКСНУМКСсисклогд СКСНУМКСппп СКСНУМКСгпм
СКСНУМКСкернелд СКСНУМКСнетстд_нфс СКСНУМКСхттпд
СКСНУМКСнетстд_инит СКСНУМКСнетстд_мисц СКСНУМКСрмнологин
СКСНУМКСнетбасе СКСНУМКСпцмциа СКСНУМКСссхд
СКСНУМКСаццт СКСНУМКСатд
СКСНУМКСлогоутд СКСНУМКСцрон

РЦ КСНУМКС команда покреће програм у овом директоријуму рунлевел покретањем ГМТ команде:

СКСНУМКСсисклогд кући
СКСНУМКСкернелд кући
СКСНУМКСнетстд_инит кући
СКСНУМКСнетбасе кући
...
СКСНУМКСссхд кући

Обратите пажњу на почетни аргумент за сваку команду. С у средство наредба да треба покренути команду у старт моду, а број (КСНУМКС кроз КСНУМКС) одређује где у низу РЦ почиње команду.

РЦ * Д команде. Скриптама То су обично почињу програми или у / сбин / уср / сбин. Нормално, можете да схватите шта је један од команди заправо посматрајући сценарио са мање или пејџер другом програму.

Једну од ових услуга можете покренути ручно. На пример, ако желите ручно да покренете програм хттпд веб сервера, покрените С99хттпд старт. Слично томе, ако икада требате да убијете неку од услуга када macхине је укључен, можете покренути команду у директоријуму рц * .д са аргументом стоп (на пример, С99хттпд стоп).

Неки рц * .д директоријуми садрже наредбе које почињу са К (за режим „убијање“ или заустављање). У овом случају, рц покреће наредбу са аргументом стоп умјесто старта. Највероватније ћете наићи на К команде на нивоима покретања који затварају system доле.

Addинг и уклањање услуга

Ако желите да add, брисање или модификовање услуга у директоријумима рц * .д, потребно је да пажљивије погледате fileје унутра. Дуги списак открива структуру попут ове:

лрвкрвкрвк. . . СКСНУМКСсисклогд -> .. / инит.д / сисклогд
лрвкрвкрвк. . . СКСНУМКСкернелд -> .. / инит.д / кернелд
лрвкрвкрвк. . . СКСНУМКСнетстд_инит -> .. / инит.д / нетстд_инит
лрвкрвкрвк. . . СКСНУМКСнетбасе -> .. / инит.д / нетбасе
...

Команде у рц * .д директоријуму су заправо симболичке везе до fileс у директорију инит.д, обично у / етц или /етц/рц.д. Линук дистрибуције садрже ове везе како би могле да користе исте скрипте за покретање за све раниселе. Ова конвенција никако није услов, али често чини организацију мало лакшом.

Да бисте спречили да се једна од наредби у директоријуму инит.д изводи на одређеном нивоу покретања, можда бисте помислили да уклоните симболичку везу у одговарајућем директоријуму рц * .д. Ово функционише, али ако погрешите и икада буде потребно да вратите везу на место, можда ћете имати проблема с памћењем тачног назива везе. Због тога не бисте требали уклањати везе у директоријумима рц * .д, већ, add доња црта (_) на почетку имена везе попут ове:

МВ СКСНУМКСхттпд _СКСНУМКСхттпд

У време покретања, рц игнорише _С99хттпд јер не започиње са С или К. Поред тога, оригинално име је и даље очигледно и имате брз приступ команди ако сте у стисци и ако је потребно да је покренете ручно.

До add услугу, морате створити скрипту попут осталих у директоријуму инит.д, а затим направити симболичку везу у исправном рц * .д директоријуму. Најлакши начин да напишете скрипту је да прегледате скрипте већ у инит.д, направите копију оне коју разумете и измените је.

Када addизрадите услугу, уверите се да сте изабрали одговарајуће место у секвенци покретања за покретање услуге. Ако услуга започне прерано, можда неће функционисати због зависности од неке друге услуге. За небитне услуге, већина systemАдминистратори више воле бројеве у 90-има, након већине услуга које су долазиле са system.

Обично Линук дистрибуције долазе са командом да омогућите и онемогућите услуге у РЦ * Д директоријуме.. На пример, у Дебиан, команда је упдате-рц.д, а у Ред Хат Линук, команда је цхкцонфиг. Графички кориснички интерфејс су такође доступни. Коришћењем ових програма помаже да се покретање директоријуме и помаже у складу са надоградње.

Наговестити: Један од најчешћих Линук-а installпроблемима је неправилно конфигурисан КСФрее86 сервер који се укључује и искључује, чинећи system неупотребљив на конзоли. Да бисте зауставили ово понашање, покрените се у једнокориснички режим и промените ниво услуге или нивоа покретања. Потражите нешто што садржи кдм, гдм или кдм у својим директоријумима рц * .д или у вашем / етц / иниттаб.

Контролисање инит

Повремено је потребно да се мало покренете да му кажете да пребаци нивое, да поново прочитате иниттаб file, или само да shut down la system. Јер инит је увек први процес на а system, његов ИД процеса је увек 1.

Можете да контролишете инит са телинит. На пример, ако желите да се пребаците на рунлевел КСНУМКС, користите ову команду:

телинит КСНУМКС

Када пребацује ниво покретања, инит покушава да убије све процесе који нису у иниттаб-у file за нови ниво рада. Због тога треба бити опрезан око промене нивоа вожње.

Кад треба add или уклоните задатке за поновно покретање или унесите било коју другу промену у почетну картицу file, морате рећи инит о промени и навести је да је поново прочита file. Неки користе килл -ХУП 1 да би рекли иниту да то учини. Ова традиционална метода делује на већини верзија Уника, све док је правилно укуцате. Међутим, можете да покренете и ову наредбу телинит:

телинит К

Такође можете да користите телинит а да бисте се пребацили на режим за једног корисника.

Искључивање

инит такође контролише како system искључује се и поново покреће. Правилан начин да се shut down и Линук macхине је употреба наредбе за искључивање.

Постоје два основна начина за коришћење искључивања. Ако зауставиш system, то искључује macхине доле и држи га доле. Да би се macодмах зауставите, користите ову наредбу:

схутдовн-х нов

На најсавременијим macСа разумно новијим верзијама Линука, заустављање искључује напајање рачунара macхине. Такође можете поново покренути macхине. За поновно покретање користите -р уместо -х.

Поступак искључивања траје неколико секунди. Никада не бисте требали ресетовати или искључити а macхине током ове фазе.

У претходном примеру, сада је време за shut down. Овај аргумент је обавезан, али постоји много начина да се то наведе. Ако желите macхине да падне негде у будућности, један од начина је коришћење + н, где је н број минута које треба искључити пре него што обави свој посао. За остале опције погледајте страницу са упутствима за искључивање (8).

Да направим system рестартујте се за 10 минута, покрените ову команду:

схутдовн-Р + КСНУМКС

На Линуку, искључивање обавештава све који су се на то пријавили macхине опада, али нема стварног посла. Ако наведете време које није сада, искључивање ствара а file звани / етц / нологин. Кад ово file је присутан, system забрањује пријаве било коме осим суперкориснику.

Када system време искључивања коначно стиже, схутдовн говори инит-у да се пребаци на ниво 0 за заустављање и ниво 6 за поновно покретање. Кад инит enterс рунлевел 0 или 6, догађа се све следеће што можете да потврдите гледајући скрипте унутар рц0.д и рц6.д:

КСНУМКС. прва убија сваки процес да може (јер би при пребацивању на било који други рунлевел).

# Почетна наредба рц0.д / рц6.д се покреће, закључава system fileна своје место и обавља друге припреме за гашење.
# Следеће наредбе рц0.д / рц6.д искључују све filesystemс осим корена.
# Даље наредбе рц0.д / рц6.д поново монтирају роот filesystem само за читање.
# Још више наредби рц0.д / рц6.д уписује све пуфроване податке у filesystem са програмом за синхронизацију.
# Коначни рцКСНУМКС.д / рцКСНУМКС.д команде реци језгру да рестартујете или престане са рестарта, халт, или Искључено програма.

Програми за поновно покретање и заустављање понашају се различито за сваки ниво покретања, што потенцијално може да доведе до забуне. од стране default, ови програми позивају гашење помоћу опција -р или -х, али ако је system је већ на нивоу заустављања или поновног покретања, програми говоре кернелу да се сам искључи. Ако стварно желиш да затвориш свој macна брзину (занемарујући било какву могућу штету услед неуредног искључивања), користите опцију -ф.

Заљубљен у технологију, волим да тестирам и пишем упутства о оперативним системима macOS, Линук, Windows, о ВордПресс-у, ВооЦоммерце-у и ЛЕМП-у о конфигурацији веб сервера (Линук, НГИНКС, МиСКЛ и ПХП). Пишем даље StealthSettings.цом од 2006. године, а неколико година касније почео сам да пишем на иХовТо.Типс водичима и вестима о уређајима у екосистему Apple: iPhone, иПад, Apple Ватцх, ХомеПод, iMac, MacBook, АирПодс и додаци.

Оставите коментар