Linuxen Init Command nola erabili

Init prozesu guztien gurasoa da. Bere funtzio nagusia fitxategiaren / etc / inittab fitxategian gordetako script baten prozesuak sortzea da (ikus inittab (5)). Fitxategi honek, normalean, erabiltzaileek saioan sartzeko lerro bakoitza abiarazten duten sarrerak sortzen ditu. Sistema jakin batek eskatzen dituen prozesu autonomoak ere kontrolatzen ditu.

exekuzio-mailak

Sistema exekutibo bat software-konfigurazio bat da, eta hautatutako prozesu-talde bat bakarrik uzten du. Init- ek abiarazitako exekuzio horietako bakoitzean sortutako prozesuak / etc / inittab fitxategian definitzen dira. Init zortzi runlevels batean egon daiteke: 0-6 eta S edo s . Runlevel-ek erabiltzaile pribilegiatuen telinit bat edukitzea aldatzen du , hasierako seinale egokiak bidaltzen baititu, zeinak maila exekutiboa aldatzeko baieztatzen duen.

0 , 1 eta 6 bitarteko exekutuak erreserbatuta daude. Runlevel 0 sistema gelditzeko erabiltzen da, exekuzio maila 6 sistema berrabiarazteko erabiltzen da, eta maila 1 exekutatzen da sistema behera erabiltzaile sistema modu bakarrean bihurtzeko. Runlevel S ez da benetan zuzenean erabili behar, baina gehiago exekutatzen diren exekutatzen diren exekutiboak exekutatzen direnean 1. Horretarako informazio gehiago lortzeko, ikusi manpages for shutdown (8) eta inittab (5).

Runlevels 7-9 ere baliagarriak dira, nahiz eta ez benetan dokumentatuta. Hau da, "tradizionala" Unix aldaerak ez dituelako erabiltzen. Zalantzarik baduzu, S eta S exekuzio-mailak gauza bera dira. Barruan alias dira runlevel bera.

Abioa

Init kernelen abioko sekuentzian dagoen azken urratsei deitzen zaionean, / etc / inittab fitxategia bilatzen du motak initdefault-en sarrera badaude (ikus inittab (5)). Initdefault sarrerak sistemako hasierako runlevel zehazten du. Ez dago sarrerarik (edo ez / etc / inittab atalean) ez bada, exekuzio maila sistema kontsolan sartu behar da.

Runlevel S edo s- ek sistema erabiltzailearentzako modu bakarra eta / etc / inittab fitxategia behar ez badituzte . Erabiltzaile moduan, erroko shella / dev / console- n irekitzen da.

Erabiltzaile moduan sartzen denean, init- ek ioctl (2) states /etc/ioctl.save-ren irakurketak irakurtzen ditu. Fitxategi hau ez badago, init lerroa hasiko da 9600 baudan eta CLOCAL ezarpenekin. Erabiltzaileari modu bakar batean uzten denean, kontsolaren ioctl ezarpenak fitxategi honetan gordetzen ditu berriro erabiltzaileari hurrengo saioan berriro erabiltzeko.

Erabiltzaile anitzeko modu bat lehen aldiz sartzen denean, abiaraztean eta boot- aiten sarrerak egiten ditu, fitxategi-sistemak muntatu ahal izateko erabiltzaileek saioa hasi aurretik. Ondoren, exekuzio-maila bat datozen sarrerak prozesatzen dira.

Prozesu berri bat abiarazten duzunean, lehen begiratuan egiaztatu / etc / initscript fitxategia badago. Hala badagokio, script hau erabiltzen du prozesua hasteko.

Umearen amaierak amaitzen diren bakoitzean, / var / run / utmp eta / var / log / wtmp- en gertatu eta arrazoia erregistratzen du, baldin eta fitxategi hauek badira.

Aldaketak exekutatzea

Behin prozesatutako prozesuak abiarazi ondoren, bere etorkizuneko prozesu bat hiltzen zain dago, powerfail seinale bat edo telinit bidez adierazitakoa sistemaren maila exekutiboa aldatzeko. Aurreko hiru baldintzaetako bat gertatzen denean, / etc / inittab fitxategia berriro aztertzen du. Artxibo hau edozein unetan gehitu daiteke. Hala eta guztiz ere, oraindik ere hiru baldintza nagusietako bat itxaroten jarraitzen du. Berehalako erantzuna emateko, telinit Q edo q komandoa abiaraz daiteke / etc / inittab fitxategia berrikusteko.

Erabiltzailea modu bakarrean ez badago eta powerfail seinalea (SIGPWR) jasotzen badu, / etc / powerstatus fitxategia irakurtzen du. Ondoren fitxategi honen edukian oinarritutako komando bat hasten da:

F (AIL)

Energia falta da, UPS boterea ematen ari da. Exekutatu powerwait eta powerfail sarrerak.

ADOS)

Boterea leheneratu egin da eta powerokwait sarrerak exekutatu.

L (OW)

Energia falta da eta UPS bateria baxua dauka. Powerfailnow sarrerak exekutatu.

/ Etc / powerstatus ez badago edo beste ezer badago, F , O edo L letrak F , F letrak irakurri ditu.

SIGPWR eta / etc / powerstatus erabiltzea ez da gomendagarria. Norbaitek init elkarreragin nahi izan duen / dev / initctl kontrolaren kanala erabili beharko luke - ikusi sysvinit paketearen iturburu-kodea dokumentu honi buruz gehiago jakiteko.

Abiatze- maila aldatzeko eskatzen denean, SIGTERM abisu-seinalea bidaltzen du exekuzio-maila berrian ez dauden prozesu guztietan. 5 segundo iraungo du SIGKILL seinalearen bidez prozesu horiek bukatzeko. Kontuan izan init- ek prozesu horiek (eta haien ondorengoak) prozesu bereko prozesuan jarraitzen duela suposatzen duela. Prozesu-taldeen afiliazio-prozesu bat aldatzen bada, ez du seinale horiek jasoko. Prozesu horiek bereizita utzi behar dira.

Telinit

/ sbin / telinit / sbin / init lotuta dago. Karaktere-argumentu bat eta seinaleak init hartzen ditu ekintza egokiak burutzeko. Ondorengo argumentuak telinit-eko zuzentarauak dira:

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

esan init zehaztutako exekutatu maila aldatzeko.

a , b , c

begin / etc / inittab file sarrerak dituzten exekutatzeko, A , B edo C maila exekutatzen dutenak prozesatu.

Q edo q

berrabiarazi / etc / inittab fitxategia berrikusteko.

S edo s

esan init erabiltzaile bakarreko modura aldatzeko.

U edo u

Berretsi berriro bere burua (egoera gordetzea). Ez da / etc / inittab fitxategia berriz aztertzen. Exekutatu maila Ss12345 izan behar da, bestela eskaera isilik egongo litzateke kontuan.

Telinitek ere esan dezake zenbat denbora itxaron beharko liratekeen SIGTERM eta SIGKILL seinaleen artean. Lehenetsia 5 segundo da, baina hau -t sek aukeraarekin alda daiteke.

Telinit pribilegio egokiak dituzten erabiltzaileek soilik deitu dezakete.

Init bitar egiaztapena init edo telinit bada bere prozesu id idazten ; benetako hasierako prozesuaren IDa beti da 1 . Horren ondorioz, telinit deitu beharrean, init erabili daiteke zuzeneko sarbide gisa.