Unsaon Paggamit ang Init Command sa Linux

Si Init ang ginikanan sa tanan nga proseso. Ang nag-unang papel niini mao ang paghimo sa mga proseso gikan sa script nga gitipigan sa file / etc / inittab (tan-awa ang inittab (5)). Kini nga file kasagaran adunay mga entries nga maoy hinungdan nga ang init mag-spawn getty s sa matag linya nga ang mga tiggamit makahimo sa pag-log in. Kini usab nagkontrol sa mga proseso sa pag-awhag nga gikinahanglan sa bisan unsang partikular nga sistema.

Runlevels

Ang usa ka runlevel usa ka software configuration sa sistema nga nagtugot lamang sa pinili nga grupo sa mga proseso nga maglungtad. Ang mga proseso nga gisugdan sa init alang sa matag usa niini nga mga runlevels gihubit sa / etc / inittab file. Ang Init mahimong usa sa walo ka runlevels: 0-6 ug S o s . Ang runlevel giusab pinaagi sa usa ka pribilehiyo nga user nga run telinit , nga nagpadala sa tukma nga mga signal sa init , nga nagsulti niini kung unsa ang runlevel nga mausab ngadto.

Ang Runlevels 0 , 1 , ug 6 gitagana. Ang Runlevel 0 gigamit sa pagpahunong sa sistema, ang runlevel 6 gigamit aron sa pag-reboot sa sistema, ug ang runlevel 1 gigamit aron makuha ang sistema ngadto sa usa ka mode nga user. Ang Runlevel S wala'y katuyoan nga gamiton direkta, apan labaw pa alang sa mga script nga gipatuman sa pagsulod sa runlevel 1. Alang sa dugang kasayuran mahitungod niini, tan-awa ang mga manpages para sa shutdown (8) ug inittab (5).

Ang Runlevels 7-9 usab balido, bisan tuod dili tinuod nga dokumentado. Kini tungod kay ang "tradisyonal nga" Unix nga mga variant wala magamit. Sa kaso nga gusto nimo, ang mga runlevels nga S ug s mao ang tinuod nga pareho. Sa sulod sila mga alyas alang sa samang runlevel.

Pagputol

Human sa init nga gitawag ingon nga ang katapusang lakang sa kernel boot sequence, kini nagapangita sa file / etc / inittab aron masuta kung adunay usa ka entry sa type initdefault (tan-awa ang inittab (5)). Ang initdefault entry nagtino sa inisyal nga runlevel sa sistema. Kung walay ingon nga entry (o wala / etc / inittab sa tanan), usa ka runlevel kinahanglan nga ipasok sa system console.

Ang Runlevel S o s magdala sa sistema sa usa ka user mode ug wala magkinahanglan sa usa ka / etc / inittab file. Sa usa ka mode sa user, ang usa ka kabhang sa gamut giablihan sa / dev / console .

Sa pagsulod sa single user mode, init mabasa ang ioctl (2) estado sa console gikan sa /etc/ioctl.save . Kung wala kini nga file, ang init magsugod sa linya sa 9600 baud ug sa mga setting sa CLOCAL . Sa diha nga ang init mobiya sa usa ka mode sa user, kini nagtipig sa mga setting sa ioctl sa console niini nga file aron kini magamit pag-usab alang sa sunod nga sesyon sa usa ka user.

Sa pagsulod sa usa ka multi-user mode sa unang higayon, ang init naghimo sa boot ug bootwait entries aron tugotan ang mga sistema sa file nga i- mounta sa dili pa maka-log ang mga tiggamit. Unya ang tanang mga entry nga nagtumbok sa runlevel giproseso.

Sa pagsugod sa usa ka bag-ong proseso, una nga gisusi sa init kon ang file / etc / initscript anaa. Kung kini, gigamit kini nga script sa pagsugod sa proseso.

Sa matag higayon nga ang usa ka bata mohunong, ang init nagrekord sa kamatuoran ug ang rason nga kini namatay sa / var / run / utmp ug / var / log / wtmp , basta anaa kini nga mga file.

Nagbag-o nga Runlevels

Human kini nakahimo sa tanang mga proseso nga gitino, init naghulat alang sa usa sa mga proseso sa kaliwatan aron mamatay, usa ka signal sa powerfail, o hangtud nga kini gimarkahan pinaagi sa telinit aron mausab ang runlevel sa sistema. Sa diha nga ang usa sa tulo ka mga kondisyon nga mahitabo mahitabo, kini susihon pag-usab ang / etc / inittab file. Ang bag-ong mga entry mahimong idugang sa kini nga file sa bisan unsang oras. Hinuon, ang init naghulat gihapon sa usa sa tulo nga mga kondisyon nga mahitabo. Aron makahatag dayon nga tubag, ang telinit nga Q o q nga komando mahimong makamata sa init aron susihon pag-usab ang / etc / inittab file.

Kung ang init dili sa usa ka mode sa user ug makadawat sa usa ka powerfail signal (SIGPWR), kini mabasa ang file / etc / powerstatus . Dayon nagsugod ang usa ka sugo nga gibase sa sulod niini nga file:

F (AIL)

Ang kakulang sa gahum, ang UPS naghatag sa gahum. Ipatuman ang powerwait ug powerfail entries.

O (K)

Ang gahum gipasig-uli, ipatuman ang mga entry sa powerokwait .

L (OW)

Ang kakusog sa gahum ug ang UPS adunay ubos nga baterya. Ipatuman ang entry sa powerfailnow .

Kung ang / etc / powerstatus wala o naglangkob sa bisan unsang butang unya ang mga letra F , O o L , ang init maggawi ingon nga kini nakabasa sa letra F.

Ang paggamit sa SIGPWR ug / etc / powerstatus nawad-an sa kadasig. Ang usa nga gustong makig-uban sa init kinahanglan nga mogamit sa / dev / initctl control channel - tan-awa ang source code sa sysvinit nga pakete alang sa dugang nga dokumentasyon mahitungod niini.

Sa dihang gihangyo ang init sa pag-usab sa runlevel, gipadala ang signal warning SIGTERM sa tanang mga proseso nga dili matino sa bag-ong runlevel. Dayon naghulat kini 5 segundos sa wala pa pugos nga pag-undang ang mga proseso pinaagi sa signal SIGKILL . Hinumdomi nga ang init nagdahum nga kining tanan nga mga proseso (ug ang ilang mga kaliwat) nagpabilin sa samang proseso nga grupo nga gibuhat sa init alang kanila. Kung adunay bisan unsang proseso nga mag-usab sa iyang grupo nga pagpasakop sa proseso kini dili makadawat niini nga mga signal. Ang ingon nga mga proseso kinahanglan nga ihunong nga gilain.

Telinit

/ sbin / telinit nalambigit sa / sbin / init . Nagkinahanglan kini og usa-ka-karakter nga argumento ug nagpahibalo init aron ipahigayon ang angay nga aksyon. Ang mosunod nga mga argumento nagsilbi isip mga direktiba sa telinit :

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

sultian ang init sa pagbalhin ngadto sa gitakda nga run level.

a , b , c

isulti ang init aron iproseso lamang ang mga entry sa / etc / inittab nga adunay runlevel a , b o c .

Q o q

isulti init aron usisaon pag-usab ang / etc / inittab file.

S o s

isulti ang init sa pagbalhin ngadto sa single mode nga user.

U or u

sultian ang init aron ipatuman ang iyang kaugalingon (pagpreserba sa estado). Wala'y pag-usisa pag-usab sa / etc / inittab file ang mahitabo. Ang lebel sa pagdagan kinahanglan nga usa sa Ss12345 , kon dili ang hangyo nga hilom nga ibalewala.

Ang telinit makasulti usab sa init kung unsa ka dugay kinahanglan nga maghulat tali sa pagpadala sa mga proseso sa SIGTERM ug SIGKILL signal. Ang default mao ang 5 segundos, apan kini mahimong usbon uban sa opsiyon nga -t sec .

Ang telinit mahimong gamiton lamang sa mga tiggamit nga adunay mga angay nga mga pribilehiyo.

Ang init binary nagsusi kung kini init o telinit pinaagi sa pagtan-aw sa proseso sa id niini ; ang tinuod nga init nga proseso sa id mao kanunay 1 . Gikan niini kini nagsunod nga imbis nga motawag sa telinit ang usa mahimo usab nga gamiton ang init sa baylo ingon nga usa ka shortcut.