Како користити Инит Цомманд у Линуку

Инит је родитељ свих процеса. Његова примарна улога је стварање процеса из скрипте сачуване у фајлу / етц / иниттаб (види иниттаб (5)). Овај фајл обично садржи уносе који изазивају инит да покрећу гетти с на свакој линији коју корисници могу пријавити. Такође контролише аутономне процесе које захтијева било који одређени систем.

Рунлевелс

Рунлевел је софтверска конфигурација система која омогућава само одабрану групу процеса да постоје. Процеси који се иницирају за инит за сваки од ових рунлевелса дефинисани су у / етц / иниттаб датотеци. Инит може бити у једној од осам рунлевела: 0-6 и С или с . Радни ниво се мења тако што има привилеговани корисник који покреће телинит , који шаље одговарајуће сигнале за инит , говорећи о којем се радном нивоу промијени.

Радни редови 0 , 1 и 6 су резервисани. Рунлевел 0 се користи за заустављање система, радни ниво 6 се користи за рестартовање система, а радни ниво 1 се користи да би систем био у режиму једног корисника. Рунлевел С заиста није намењен директном коришћењу, већ више за скрипте који се извршавају приликом уноса нивоа 1. За више информација о томе погледајте одломке за схутдовн (8) и иниттаб (5).

Ваљци 7-9 такође важе, мада нису заиста документовани. То је зато што их "традиционалне" Уник варијанте не користе. У случају да сте радознали, рунлевелови С и с су заправо исти. Интерно су они алиасес за исти рунлевел.

Боотинг

Након инит се позива као последњи корак секвенце боот кернела, тражи се датотека / етц / иниттаб да би се видело да ли постоји унос типа инитдефаулт (погледајте иниттаб (5)). Инитдефаулт унос одређује почетни ниво рада система. Ако такав унос (или не / етц / иниттаб ) уопште нема, на системској конзоли се мора унети радни ниво .

Рунлевел С или с доводе систем у један кориснички режим и не захтевају датотеку / етц / иниттаб . У режиму једног корисника, отворена је роот схелл на / дев / конзоли .

Приликом уноса појединачног корисничког режима, инит чита стања иоцтл (2) конзоле из /етц/иоцтл.саве . Ако ова датотека не постоји, инит иницијализује линију на 9600 бауд и са подешавањима ЦЛОЦАЛ . Када иницијатива остави један кориснички режим, она чува подешавања иоцтл конзоле у ​​овој датотеци, тако да их може поново користити за следећу сесију с једним корисником.

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

Када започне нови процес, инит прво проверава да ли постоји датотека / етц / инитсцрипт . Ако то уради, користи ову скрипту да започне процес.

Сваки пут када се дете заврши, инит записе чињеницу и разлога због којег је умро у / вар / рун / утмп и / вар / лог / втмп , под условом да постоје ове датотеке.

Промена руковаоца

Након што је покренуо све наведене поступке, инит чека један од његових потомака да умре, сигнал снаге или док га телинит не сигнализира да би промијенио радни систем система. Када се појави један од горе наведених три стања, преиспита датотеку / етц / иниттаб . Нови уноси се могу додати у ову датотеку у било ком тренутку. Међутим, инит и даље чека један од горе наведених три услова. Да би се обезбедио тренутни одговор, наредба телинит К или к може пробудити инит да би поново прегледала датотеку / етц / иниттаб .

Ако иницијатива није у режиму појединачног корисника и прими сигнал снаге (СИГПВР), она чита датотеку / етц / поверстатус . Затим започиње команда заснована на садржају ове датотеке:

Ф (АИЛ)

Снага не успева, УПС обезбеђује снагу. Извршите уносе за поверваит и поверфаил .

ОК)

Снага је враћена, извршите уносе поверокваит .

Л (ОВ)

Снага не ради, а УПС има малу батерију. Извршите ставке поверфаилнов .

Ако / етц / поверстатус не постоји или садржи било шта друго, слова Ф , О или Л , инит ће се понашати као да је прочитала слово Ф.

Употреба СИГПВР- а и / етц / поверстатус је обесхрабрена. Неко ко жели да ступи у интеракцију са инит-ом треба да користи канал за контролу / дев / инитцтл - погледајте изворни код сисвинит пакета за више документације о томе.

Када се иницијатива захтева да промијени радни ниво , он шаље сигнал упозорења СИГТЕРМ свим процесима који нису дефинирани у новом радном колону . Затим чека 5 секунди пре него што присилно заврши ове процесе путем СИГКИЛЛ сигнала. Имајте на уму да инит претпоставља да сви ови процеси (и њихови потомци) остају у истој процесној групи која је првобитно створена за њих. Ако било који процес мења своју групну припадност процесу, неће примити ове сигнале. Такви процеси морају бити завршени засебно.

Телинит

/ сбин / телинит је повезан са / сбин / инит . Потребан је аргумент са једним знаком и сигнали инит за обављање одговарајуће акције. Следећи аргументи служе као директива за телинит :

0 , 1 , 2 , 3 , 4 , 5 или 6

рећи инит да пређете на одређени ниво рада.

а , б , ц

рећи инит да обрађује само оне датотеке / етц / иниттаб датотеке са радним нивоом а , б или ц .

К или к

реци инит да преиспитају датотеку / етц / иниттаб .

С или с

рећи инит да се пребацује на појединачни корисник.

У или у

рећи инит да се поново изврши (чување државе). Не преиспитује се датотека / етц / иниттаб . Рун ниво би требао бити један од Сс12345 , у супротном би захтев био тихо занемарен.

телинит такође може рећи инит колико дуго треба да чека између процеса слања сигнала СИГТЕРМ и СИГКИЛЛ. Подразумевана вредност је 5 секунди, али ово се може променити опцијом -т сец .

телинит се могу позвати само корисници са одговарајућим привилегијама.

Инит бинарни провјерава да ли је инит или телинит гледањем његовог ИД процеса ; ид процеса иницијалног инит -а је увек 1 . Из овога произилази да умјесто позивања телинита може се користити и инит умјесто као пречица.