Kif tuża l-Kmand Init fil-Linux

Init huwa l-ġenitur tal-proċessi kollha. Ir-rwol ewlieni tiegħu huwa li joħloq proċessi minn kitba maħżuna fil-fajl / etc / inittab (ara inittab (5)). Dan il-fajl normalment ikollu entrati li jikkawżaw init għal spawning getty fuq kull linja li l-utenti jistgħu jidħlu fihom. Jikkontrolla wkoll proċessi awtonomi meħtieġa minn kwalunkwe sistema partikolari.

Runlevels

A runlevel huwa konfigurazzjoni ta 'softwer tas-sistema li tippermetti biss li jeżisti grupp magħżul ta' proċessi. Il-proċessi mnissla mill- init għal kull wieħed minn dawn il-runlevels huma definiti fil-fajl / etc / inittab . Init jista 'jkun f'wieħed mit-tmien livelli runlevels: 0-6 u S jew s . Il-runlevel jinbidel billi jkun hemm telinit imħaddem minn utent privileġġat, li jibgħat sinjali xierqa biex jibda , u jgħidulek liema runlevel se jinbidel.

Runlevels 0 , 1 , u 6 huma riservati. Runlevel 0 jintuża biex titwaqqaf is-sistema, runlevel 6 jintuża biex jerġa 'jibda s-sistema, u l-runlevel 1 jintuża biex is-sistema tinqata' f'modalità ta 'utent wieħed. Runlevel S mhuwiex maħsub biex jintuża direttament, iżda aktar għall-iskripts li jiġu eżegwiti meta jidħlu fil-runlevel 1. Għal aktar informazzjoni dwar dan, ara l-manpages għall- għeluq (8) u inittab (5).

Runlevels 7-9 huma wkoll validi, għalkemm mhux verament iddokumentati. Dan minħabba li l-varjanti Unix "tradizzjonali" ma jużawhomx. Fil-każ li int kurjuż, runlevels S u s huma fil-fatt l-istess. Internament huma psewdonimi għall-istess livell ta 'nfiq.

Booting

Wara li l- init jiġi invokat bħala l-aħħar pass tas-sekwenza tal- bqija tal-qalba, tfittex il-fajl / etc / inittab biex tara jekk hemmx dħul tat-tip initdefault (ara inittab (5)). L- initdefault entry jiddetermina l-livell ta 'l-evoluzzjoni inizjali tas-sistema. Jekk ma jkun hemm l-ebda tali dħul (jew le / etc / inittab fil-livelli kollha), runlevel għandu jiddaħħal fil-console tas-sistema.

Runlevel S jew i jġibu s -sistema għal mod wieħed ta 'utent u ma jeħtiġux fajl / etc / inittab . F'modalità ta 'utent wieħed, qoxra ta' l-għeruq tinfetaħ fuq / dev / console .

Meta tidħol fil-modalità ta 'utent singolu, init jaqra l- ioctl (2) tal- console minn /etc/ioctl.save . Jekk dan il-fajl ma jeżistix, init inizjala l-linja f'9600 baud u ma 'settings CLOCAL . Meta l- init iħalli mod ta 'utent wieħed, jaħżen is-settings ta' l- immaġini tal-console f'dan il-fajl sabiex ikun jista 'jerġa' jintuża għas-sessjoni ta 'utent wieħed li jmiss.

Meta tidħol f'modalità multi-utent għall-ewwel darba, init twettaq id - dħul tal- boot u l- bootwait biex tippermetti li s-sistemi tal-fajls jiġu mmuntati qabel ma l-utenti jkunu jistgħu jidħlu. Imbagħad l-iskrizzjonijiet kollha li jaqblu mal-runlevel huma pproċessati.

Meta tibda proċess ġdid, tibda l-ewwel verifiki jekk il-fajl / etc / initscript jeżistix. Jekk tagħmel dan, tuża din l-iskrittura biex tibda l-proċess.

Kull darba li t-tfal jintemmu, l- init jirreġistra l-fatt u r-raġuni li miet / var / run / utmp u / var / log / wtmp , sakemm dawn il-fajls jeżistu.

Tibdil ta 'Runlevels

Wara li ġġenera l-proċessi kollha speċifikati, init tistenna li wieħed mill-proċessi dixxendenti tiegħu jmut, sinjal ta 'qawwa elettrika, jew sakemm jintwera permezz ta' telinit biex jinbidel is-sistema ta 'nfiq tas-sistema. Meta sseħħ waħda mit-tliet kundizzjonijiet ta 'hawn fuq, terġa' teżamina l-fajl / etc / inittab . Entrati ġodda jistgħu jiżdiedu ma 'dan il-fajl fi kwalunkwe ħin. Madankollu, għadu qed jistenna li jseħħ wieħed mit-tliet kundizzjonijiet ta 'hawn fuq. Biex tipprovdi risposta istantanja, il- kmand tat - telinit Q jew q jista 'jinxtegħel biex terġa' teżamina l-fajl / etc / inittab .

Jekk l- init ma jkunx f'modalità ta 'utent wieħed u jirċievi sinjal ta' qawwa elettrika (SIGPWR), jaqra l-fajl / etc / powerstatus . Imbagħad jibda kmand ibbażat fuq il-kontenut ta 'dan il-fajl:

F (AIL)

Il-poter qed ifalli, l-UPS qed jipprovdi s-saħħa. Twettaq l-entrati ta ' powerwait u powerfail .

KOLLOX SEW)

Is-setgħa ġiet restawrata, tesegwixxi l-entrati powerokwait .

L (OW)

Il-qawwa tfalli u l-UPS għandu batterija baxxa. Twettaq l-entrati ta ' powerfailnow .

Jekk / etc / powerstatus ma teżistix jew fiha xi ħaġa oħra allura l-ittri F , O jew L , init iġibu ruħhom daqslikieku qrajt l-ittra F.

L-użu tas- SIGPWR u / etc / powerstatus huwa skoraġġut. Xi ħadd li jixtieq jinteraġixxi ma ' init għandu juża l-kanal ta' kontroll / dev / initctl - ara l-kodiċi tas-sors tal-pakkett sysvinit għal aktar dokumentazzjoni dwar dan.

Meta l- init huwa mitlub ibiddel il-livell ta 'riserva, jibgħat is-sinjal ta' twissija SIGTERM għall-proċessi kollha li mhumiex definiti fil-livell ta 'żvilupp ġdid. Imbagħad jistenna 5 sekondi qabel ma jtemm dawn il-proċessi permezz tas-sinjal SIGKILL . Innota li init jassumi li dawn il-proċessi (u d-dixxendenti tagħhom) jibqgħu fl-istess grupp ta 'proċess li oriġinarjament ħoloq għalihom. Jekk xi proċess ibiddel l-affiljazzjoni tal-grupp tal-proċess tiegħu mhux se jirċievi dawn is-sinjali. Tali proċessi jridu jintemmu separatament.

Telinit

/ sbin / telinit huwa marbut ma ' / sbin / init . Huwa jieħu argument ta 'karattru wieħed u sinjali init biex iwettaq l-azzjoni xierqa. L-argumenti li ġejjin iservu bħala direttivi biex telinit :

0 , 1 , 2 , 3 , 4 , 5 jew 6

għid lit biex taqleb għal-livell ta 'sewqan speċifikat.

a , b , c

għid lit biex tipproċessa biss dawk l-entrati tal-fajl / etc / inittab li għandhom livell ta ' runlevel a , b jew c .

Q jew q

għid lit-terġa 'teżamina l-fajl / etc / inittab .

S jew s

għid lit biex taqleb għal mod wieħed ta 'utent.

U jew u

għid lit biex terġa 'teżegwixxi lilha nfisha (ippreservat l-istat). Ma jsir l-ebda eżami mill-ġdid tal-fajl / etc / inittab . Il-livell ta ' ħidma għandu jkun wieħed ta' Ss12345 , inkella t-talba tkun skartata injorata.

telinit jista 'jgħid ukoll kemm għandha tistenna bejn il-proċessi li jibagħtu s-sinjali SIGTERM u SIGKILL. L-inadempjenza hija ta '5 sekondi, iżda dan jista' jinbidel bl-għażla -t sec .

telinit jista 'jiġi invokat biss minn utenti li għandhom privileġġi xierqa.

Il-kontrolli init binarji jekk ikun init jew telinit billi tħares id-dokument tal-proċess tagħha; L-ID tal-proċess ta 'l- init reali huwa dejjem 1 . Minn dan isegwi li minflok ma ssejjaħ telinit wieħed jista 'juża biss init minflok bħala shortcut.