Indlela yokusebenzisa i-Init Command kwi-Linux

Init ngumzali wazo zonke iinkqubo. Indima yayo ephambili kukudala iinkqubo ezivela kwiskripthi egcinwe kwifayile / njll / inittab (jonga inittab (5)). Le fayile idla ngokufakela okubangela ukuba init ihlwithe i- getty kumgca ngamnye abasebenzisi abangangena ngemvume. Ikwalawula kwakhona iinkqubo ezizimeleyo ezifunekayo yinkqubo ethile.

Runlevels

I- runlevel yindlela yokuqwalasela isofthiwe yenkqubo evumela kuphela iqela leenkqubo ezikhethiweyo ukuba zikho. Iinkqubo ezizaliswe yi- init nganye yale miqolo zichazwe kwifayile / etc / inittab . I-Init ingaba ngowesinye sezihlandlo ezisibhozo ze-runlevel: 0-6 ne- S okanye i- S . I-runlevel iyatshintshwa ngokuba nomsebenzisi onelungelo elifanelekileyo usebenzisa i- telinit , ethumela iimpawu ezifanelekileyo kwi- init , ukuxelela ukuba yiyiphi i-runlevel yokutshintsha.

I-Runlevels 0 , 1 , ne- 6 zigcinwe. I-Runlevel 0 isetyenziselwa ukumisa inkqubo, i-runlevel 6 isetyenziselwa ukuqalisa kwakhona inkqubo, kunye ne-runlevel 1 isetyenziselwa ukufumana inkqubo phantsi kwemodi yomsebenzisi omnye. I-Runlevel S ayifanelekanga ukuba isetyenziswe ngokuthe ngqo, kodwa ngaphezulu kweempendulo ezenziwayo xa ungena kwi-runlevel 1. Ukuze ufumane ulwazi oluninzi ngalokhu, bonani manpages for shutting (8) kunye ne- inittab (5).

I-Runlevels 7-9 nayo isebenzayo, nangona ingaqinisekisiweyo ngokwenene. Oku kungenxa yokuba iinguqu ze-Unix "zendabuko" azizisebenzisi. Ukuba unomdla, i-runlevels S ne- s zifana ezifanayo. Ngaphakathi zi-aliases ze-runlevel efanayo.

Ukuqulunqa

Emva kokuba init isetyenziswe njengesinyathelo sokugqibela sokulandelelana kwe-kernel, ijonga ifayile / njll / inittab ukubona ukuba kukho ukungena kohlobo oluthile (jonga inittab (5)). Ukungeniswa kokungena kwi- initdefault kumisela inkqubo yokuqala yenkqubo. Ukuba akukho nhlobo yokungena (okanye akukho / njll / inittab nantoni), i-runlevel kufuneka ifakwe kwi-console yenkqubo.

I-Runlevel S okanye izisa inkqubo kwi-mode yomsebenzisi omnye kwaye ayifuni ifayile / etc / inittab . Ngendlela enye yomsebenzisi, igobolondo yengcambu ivuliwe kwi / dev / console .

Xa ufaka enye indlela yomsebenzisi , i- init ifunde ioctl ye-console (2) ithi kusuka /etet/ioctl.save . Ukuba le fayile ayikho, init iqalisa umgca kwi- 9600 baud kunye nezicwangciso ze- CLOCAL . Xa iifiti ze-init zingasebenziyo enye, igcina izicwangciso ze- ioctl ze-console kule fayile ukuze ibenzise kwakhona kwiseshoni esilandelayo yomsebenzisi.

Xa ufaka imodyuli yomsebenzisi kwixesha lokuqala, i- init yenza i- boot kunye ne- bootwait ezifakiwe ukuvumela iinkqubo zefayile ukuba zifakwe phambi kokuba abasebenzisi bangene ngemvume. Emva koko zonke iinkcukacha ezihambelana ne- runlevel ziyacutshungulwa .

Xa uqala inkqubo entsha, init kuqala ihlola ukuba ngaba ifayile / etc / initscript ikhona. Ukuba yenza, isebenzisa le script ukuqala inkqubo.

Ngamanye amaxesha umntwana ephela, iireit irekhodi ye nyaniso kunye nesizathu sokufa kwayo / var / run / utmp kunye / var / log / wtmp , ngaphandle kokuba ezi fayile zikhona.

Ukutshintsha i-Runlevels

Emva kokuba sele iqalile zonke iinkqubo ezichaziweyo, i- init ilinda enye yeenkqubo zayo zokufa, uphawu lwe-powerfail, okanye kude kubekwe uphawu lwe- telinit ukutshintsha i- runlevel yenkqubo. Xa enye yeemeko ezikhankanywe ngasentla, ihlola kwakhona i / etc / inittab ifayile. Ukungena okutsha kungongezwa kule fayile nanini na. Nangona kunjalo, i- init isalindela enye yeemeko ezingentla ngentathu zenzeke. Ukubonelela ngokuphendula ngokukhawuleza, i- telinit Q okanye umyalelo we- q ingavusela init ukuhlola kwakhona ifayile / etc / inittab .

Ukuba i- init ayikho kwimodi yomsebenzisi omnye kwaye ifumana uphawu lwegunya (SIGPWR), lifunda ifayile / njl / amandlastatus . Emva koko uqala umyalelo esekelwe kwimixholo yale fayili:

F (AIL)

Amandla ayiphumeleli, i-UPS inika amandla. Yenza i- powerwait ne- powerfail engenayo.

KULUNGILE)

Amandla abuye abuyiselwe, asebenze okungenayo kwamandla e- entry.

L (OW)

Amandla ahluleka kwaye i-UPS inebhethri ephantsi. Yenza okufakwayo kwamandla .

Ukuba / njl / i-powerstatus ayikho okanye iqulethe enye into ngoko iileta zeF , i- O okanye i-init, ziza kuziphatha njengokuthi zifundile ileta F.

Ukusetyenziswa kwe- SIGPWR kunye / etc / amandlastatus idimazekile. Omnye ofuna ukusebenzisana ne- init kufuneka asebenzise ishaneli yokulawula / dev / initctl - funda ikhowudi yomthombo we- sysvinit iphakheji ngamaphepha amaninzi malunga nalo.

Xa i- init iceliwe ukuba ishintshe i-runlevel, ithumela isilumkiso sesilumkiso SIGTERM kuzo zonke iinkqubo ezingachazwanga kwi-runlevel entsha. Emva koko ulinde imizuzwana emihlanu ngaphambi kokuba unqunyulwe ngokukodwa le nkqubo ngokusebenzisa uphawu lweSIGKILL . Qaphela ukuba i- init ithatha ukuba zonke ezi nkqubo (kunye neentlobo zawo) zihlala kwinkqubo efanayo yenkqubo eyenziwe ekuqaleni. Ukuba nayiphi na inkqubo iguqula indlela yokusebenzisana kweqela, ayiyi kufumana le miqondiso. Ezi nkqubo kufuneka zipheliswe ngokwahlukileyo.

Telinit

/ sbin / i-telinit idibene ne / sbin / init . Kuthatha i-argument ye-one character and signals init ukwenza isenzo esifanelekileyo. Ezi ngxabano zilandelayo zikhonza njengezikhokelo kwi- telinit :

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

xelela init ukutshintshela kwinqanaba lokugijima elichaziweyo.

, b , c

xelela init ukuba isebenze kuphela ezo / etc / inittab fayile ezifakwe kwi-runlevel, b okanye c .

Q okanye q

xelela init ukuhlola kwakhona / etc / inittab ifayile.

S okanye s

xelela init ukutshintsha kwimodi yomsebenzisi omnye.

U okanye u

xelela init ukuba uyenze kwakhona (ukugcina urhulumente). Akukho kuphinda kuhlolwe kwakhona / / etc / inittab ifayile yenzeka. Inqanaba lokusebenza kufuneka libe linye le- Ss12345 , isicelo esingenjalo siya kutyalwa .

i-telinit inokuthi i- init ukuba kufuneka ilinde ixesha elingakanani phakathi kokuthumela iinkqubo ze-SIGTERM kunye ne-SIGKILL. Okungagqibekanga imizuzwana emihlanu, kodwa oku kungatshintshwa ngokukhetha- sec .

i-telinit ingafakwa kuphela ngabasebenzisi abanamalungelo afanelekileyo.

I- init ibhenari ihlola ukuba i- init okanye i- telinit ngokujonga i- id yenkqubo yayo; i- init yenkqubo ye- init njalo i- 1 . Kule ndlela kulandela ukuba esikhundleni sokubiza i- telinit sinokusebenzisa i- init esikhundleni sendlela elula.