Sut i Ddefnyddio'r Gorchymyn Cychwynnol yn Linux

Menter yw rhiant yr holl brosesau. Ei brif rôl yw creu prosesau o sgript a storir yn y ffeil / etc / inittab (gweler inittab (5)). Fel rheol, mae gan y ffeil hon gofnodion sy'n achosi cychwyn i gludo silff ar bob llinell y gall defnyddwyr logio i mewn. Mae hefyd yn rheoli prosesau annibynnol sy'n ofynnol gan unrhyw system benodol.

Rheolau

Mae runlevel yn ffurfweddiad meddalwedd y system sy'n caniatáu dim ond grŵp dewis o brosesau i fodoli. Diffinnir y prosesau a wneir gan init ar gyfer pob un o'r rheolau rhedeg hyn yn y ffeil / etc / inittab . Gall y fenter fod mewn un o wyth o reolau rhedeg: 0-6 a S neu s . Newidir y runlevel trwy gael defnyddiwr breintiedig sy'n rhedeg telinit , sy'n anfon signalau priodol i gychwyn , gan ddweud wrthynt pa reolau i newid iddo.

Mae rheolau 0 , 1 , a 6 yn cael eu cadw. Defnyddir Runlevel 0 i atal y system, mae runlevel 6 yn cael ei ddefnyddio i ailgychwyn y system, ac mae runlevel 1 yn cael ei ddefnyddio i gael y system i lawr yn un modd defnyddiwr. Nid yw Runlevel S mewn gwirionedd yn bwriadu ei ddefnyddio'n uniongyrchol, ond yn fwy am y sgriptiau a weithredir wrth fynd i mewn i runlevel 1. Am ragor o wybodaeth am hyn, gweler y manpages for shutdown (8) a inittab (5).

Mae rheolau 7-9 hefyd yn ddilys, er nad ydynt wedi'u dogfennu'n wirioneddol. Mae hyn oherwydd nad yw amrywiadau Unix "traddodiadol" yn eu defnyddio. Yn achos eich bod chi'n chwilfrydig, mae rhedeg y rheiny yn wirioneddol yr un fath. Yn fewnol maen nhw'n aliasau ar gyfer yr un rheilffordd.

Booting

Ar ôl i gychwyn gael ei ddefnyddio fel cam olaf cywain y cnewyllyn, mae'n edrych am y ffeil / etc / inittab i weld a oes cofnod o'r math initdefault (gweler inittab (5)). Mae'r cofnod initdefault yn pennu rhedlwybr cychwynnol y system. Os nad oes unrhyw gofnod o'r fath (neu ddim / etc / inittab o gwbl), rhaid rhoi rhediad rhedeg yn y consol system.

Mae Runlevel S neu s yn dod â'r system i fodel sengl defnyddiwr ac nid oes angen ffeil / etc / inittab arnoch . Mewn modd unigol, caiff cragen gwraidd ei agor ar / dev / conssole .

Wrth fynd i mewn i un modd defnyddiwr, mae init yn darllen y mae ioctl (2) y consol yn nodi o /etc/ioctl.save . Os nad yw'r ffeil hon yn bodoli, mae cychwyn yn cychwyn y llinell yn 9600 baud a gyda gosodiadau CLOCAL . Pan fydd y cychwyn yn gadael y dull defnyddiwr sengl, mae'n storio gosodiadau ioctl y consol yn y ffeil hon fel y gall ei ailddefnyddio ar gyfer y sesiwn defnyddiwr sengl nesaf.

Wrth fynd i mewn i ddull aml-ddefnyddiwr am y tro cyntaf, mae gychwyn yn perfformio cofnodion cychwyn a chychwyn i ganiatáu i systemau ffeiliau gael eu gosod cyn y gall defnyddwyr logio i mewn. Yna caiff pob cofnod sy'n cyd-fynd â'r rhedlen ei brosesu.

Wrth gychwyn ar broses newydd, bydd y cyntaf yn gwirio a yw'r ffeil / etc / initscript yn bodoli. Os yw'n gwneud hynny, mae'n defnyddio'r sgript hon i gychwyn y broses.

Bob tro mae plentyn yn dod i ben, mae init yn cofnodi'r ffaith a'r rheswm y bu farw yn / var / run / utmp a / var / log / wtmp , ar yr amod bod y ffeiliau hyn yn bodoli.

Newid Rheolau

Ar ôl iddi greu'r holl brosesau a bennir, bydd y gychwyn yn aros am un o'i phrosesau disgyn i farw, arwydd pŵer, neu hyd nes ei fod yn cael ei nodi gan ffenestri i newid rhedeg y system. Pan fydd un o'r tri chyflwr uchod yn digwydd, bydd yn ailystyried y ffeil / etc / inittab . Gellir ychwanegu cofnodion newydd i'r ffeil hon ar unrhyw adeg. Fodd bynnag, mae cychwyn yn dal i aros am un o'r tri chyflwr uchod. Er mwyn darparu ar gyfer ymateb ar unwaith, gall y rhif ffôn Q neu q ddechrau dechreuad i ailystyried y ffeil / etc / inittab .

Os nad yw cychwyn mewn modd unigol sengl ac yn derbyn signal powerfail (SIGPWR), mae'n darllen y ffeil / etc / powerstatus . Yna mae'n dechrau gorchymyn yn seiliedig ar gynnwys y ffeil hon:

F (ADLAN)

Mae pŵer yn methu, mae UPS yn rhoi'r pŵer. Dilynwch y cofnodion powerwait a powerfail .

IAWN)

Mae'r pŵer wedi'i adfer, gweithredu'r cofnodion powerokwait .

L (OW)

Mae'r pŵer yn methu ac mae gan yr UPS batri isel. Dilynwch y cofnodion powerfailnow .

Os nad yw / etc / powerstatus yn bodoli neu'n cynnwys unrhyw beth arall yna bydd y llythrennau F , O neu L , yn cychwyn fel pe bai wedi darllen y llythyr F.

Mae'r defnydd o SIGPWR a / etc / powerstatus yn cael ei annog. Dylai rhywun sydd eisiau rhyngweithio â init ddefnyddio sianel rheoli / dev / initctl - gweler cod ffynhonnell y pecyn sysvinit i gael mwy o ddogfennau am hyn.

Pan ofynnir i gychwyn newid y runlevel, mae'n anfon yr arwydd rhybudd SIGTERM i bob proses nad yw'n cael ei ddiffinio yn y rheilffordd newydd. Yna, mae'n aros 5 eiliad cyn terfynu'r prosesau hyn yn orfodol trwy signal SIGKILL . Sylwch fod y cychwyn yn tybio bod yr holl brosesau hyn (a'u disgynyddion) yn aros yn yr un grŵp proses a gychwynwyd yn wreiddiol ar eu cyfer. Os bydd unrhyw broses yn newid ei gysylltiad grŵp proses, ni fydd yn derbyn y signalau hyn. Mae angen terfynu prosesau o'r fath ar wahân.

Telinit

/ sbin / telinit yn gysylltiedig â / sbin / init . Mae'n cymryd dadl un-gymeriad ac mae arwyddion yn cychwyn i gyflawni'r camau priodol. Mae'r dadleuon canlynol yn gweithredu fel cyfarwyddebau i'w cyfeirio atynt :

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

dywedwch wrthych i newid i'r lefel redeg benodol.

a , b , c

dywedwch wrth gychwyn i brosesu dim ond y cofnodion ffeil / etc / inittab sydd â runlevel a , b neu c .

Q neu q

dywedwch wrthych i ailystyried y ffeil / etc / inittab .

S neu s

dywedwch wrth gychwyn i newid i fodel un defnyddiwr.

U neu u

dywedwch wrthych i ailddefnyddio ei hun (cadw'r wladwriaeth). Nid yw ail-archwilio ffeil / etc / inittab yn digwydd. Dylai'r lefel redeg fod yn un o Ss12345 , fel arall byddai'n cael ei anwybyddu yn dawel.

gall telinit hefyd ddweud wrthych pa mor hir y dylai aros rhwng arwyddion SIGTERM a SIGKILL rhwng anfon prosesau. Mae'r ddiffyg yn 5 eiliad, ond gellir newid hyn gyda'r opsiwn sec .

dim ond gan ddefnyddwyr sydd â breintiau priodol y gellir eu defnyddio.

Y gwiriadau deuaidd cychwynnol os yw'n gychwyn neu ei ffonio trwy edrych ar ei broses id ; mae hunan -broses y broses go iawn bob amser yn 1 . O hyn mae'n dilyn, yn hytrach na ffonio telinit, gall hefyd ddefnyddio init yn hytrach na llwybr byr.