Kuidas kasutada Linuxis käsku "init".

Selles on kõigi vanem Linuxi protsessid. See on esimene protsess, mis käivitub arvuti käivitumisel ja kestab kuni süsteemi väljalülitumiseni. See on kõigi teiste protsesside esivanem.

Selle peamine ülesanne on luua faili salvestatud skriptist protsesse /etc/inittab. See fail salvestab tavaliselt kirjed, mis põhjustavad Selles kudema gettys igal real, kuhu süsteemi kasutajad saavad sisse logida. See juhib ka autonoomseid protsesse, mida iga konkreetne süsteem nõuab.

Pingviin Tux on ametlik Linuxi maskott.
Getty Images / John Coulter

Jooksutasemed

jooksutase on süsteemi tarkvaraline konfiguratsioon, mis võimaldab käivitada ainult valitud protsesside rühma. Protsessid sünnitasid Selles iga nende käitustasemete jaoks on määratletud failis /etc/inittab. Selles toetab kaheksat töötaset: 0 läbi 6 ja S või s. Käitustase muutub, kui privilegeeritud kasutaja töötab Telinit, mis saadab vastavaid signaale Selles, andes teada, millisele käitustasemele muuta.

Käitustasemed 0, 1 ja 6 on reserveeritud. Käitustase 0 peatab süsteemi, töötase 6

taaskäivitab süsteem ja 1. käitamistase sunnib süsteemi ühe kasutaja režiimi. Käitustase S ei ole mõeldud kasutamiseks otse, vaid skriptide jaoks, mis käivitatakse 1. käitustaseme käivitumisel.

Käitustasemed 7 kuni 9 on kehtivad, kuid mitte hästi dokumenteeritud, kuna tavapärane Unix variandid neid ei kasuta. Jooksutasemed S ja s on samad.

Käivitamine

Pärast Selles täidetakse toimingu viimase sammuna kernel buutimisjada, otsib see faili /etc/inittab, et näha, kas seal on seda tüüpi kirjet vaikimisi. Kirje initdefault määrab süsteemi algse käitustaseme. Kui sellist kirjet pole (või /etc/inittab puudub üldse), tuleb sisestada käivitamistase süsteemikonsool.

Käitustase S või s viib süsteemi ühe kasutaja režiimi ega vaja faili /etc/inittab. Ühe kasutaja režiimis avatakse juurkesta /dev/console.

Ühe kasutaja režiimi sisenemisel selles loeb konsooli oma ioctl olekud failist /etc/ioctl.save. Kui seda faili pole olemas, selles lähtestab liini kiirusega 9600 boodi ja CLOCAL sätetega. Millal selles lahkub ühe kasutaja režiimist, salvestab see konsooli ioctl-sätted sellesse faili, et saaks neid järgmise ühe kasutaja seansi jaoks uuesti kasutada.

Kui sisenete esimest korda mitme kasutaja režiimi, Selles sooritab alglaadimise ja alglaadimisoote kirjed, et võimaldada failisüsteemidel ühenduda enne kasutajate sisselogimist. Seejärel kõik kirjed, mis vastavad käitamistaseme protsessile.

Uue protsessi alustamisel Selles esmalt kontrollib, kas fail /etc/initscript on olemas. Kui see juhtub, kasutab see protsessi käivitamiseks seda skripti.

Iga kord, kui laps lõpetab, Selles salvestab surma fakti ja põhjuse kaustadesse /var/run/utmp ja/var/log/wtmp, eeldusel, et need failid on olemas.

Jooksutasemete muutmine

Teliniti abiekraan

Pärast kõigi määratud protsesside käivitamist Selles ootab, kuni üks selle järeltulijatest protsessidest sureb, voolukatkestussignaali või kuni Telinit annab talle märku süsteemi käitamistaseme muutmiseks. Kui üks neist kolmest tingimusest ilmneb, uurib see faili /etc/inittab uuesti. Sellesse faili saab igal ajal lisada uusi kirjeid. Kuid, selles ootab endiselt ühe kolmest ülaltoodud tingimusest ilmnemist. Kiire reageerimise tagamiseks Telinit Q käsk ärkab Selles faili /etc/inittab uuesti uurimiseks.

Kui Selles ei ole ühe kasutaja režiimis ja saab voolukatkestuse signaal, loeb see faili /etc/powerstatus. Seejärel algab a käsk selle faili sisu põhjal:

  • F(AIL): Toide katkeb, UPS annab voolu. Täitke powerwait ja voolukatkestus sissekandeid.
  • O(K): Toide on taastatud, käivitage powerokwait sissekandeid.
  • L(OW): Toide katkeb ja UPS-i aku on tühi. Täitke voolukatkestus praegu sissekandeid.

Kui /etc/powerstatus ei eksisteeri või sisaldab midagi muud peale tähtede F, O või L, Selles käitub nii, nagu loeks F-tähte.

SIGPWR ja /etc/powerstatus kasutamine ei ole nüüd soovitatav. Kasutage kaasaegses juhtimiskanalis /dev/initctl Linuxi distributsioonid.

Millal Selles palutakse töötaset muuta, saadab see hoiatussignaali SIGTERM kõikidele protsessidele, mis on uuel töötasemel määratlemata. Seejärel ootab see viis sekundit, enne kui need protsessid SIGKILL-signaali abil sunniviisiliselt lõpetab. Selles eeldab, et kõik need protsessid ja nende järglased jäävad samasse protsessigruppi, mis Selles algselt nende jaoks loodud. Kui mõni protsess muudab oma protsessirühma kuuluvust, ei saa see neid signaale vastu. Sellised protsessid tuleb eraldi lõpetada.

Telinit

Telinit on lingitud failiga /sbin/init. See võtab ühe tähemärgi pikkuse argumenti ja signaalid Selles sobiva toimingu tegemiseks. Järgmised argumendid on juhised Telinit:

  • 0, 1, 2, 3, 4, 5 või 6: lülituge määratud töötasemele.
  • a, b, c: Töötleb ainult neid /etc/inittab failikirjeid, millel on käitustasemed a, b või c.
  • või q: Kontrollige faili /etc/inittab uuesti.
  • või s: lülituge ühe kasutaja režiimile. Mõnikord kutsutakse välja ühe kasutaja režiim taastamise režiim sest seda kasutatakse sageli süsteemi hädaolukorra parandamiseks.
  • või u: teostab ennast uuesti (oleku säilitamine). Faili /etc/inittab uuesti ei uurita. Töötase peaks olema S, s, 1, 2, 3, 4 või 5; vastasel juhul ignoreeritakse taotlust vaikselt.

Telinit oskab ka öelda Selles kui kaua peaks saatmisprotsesside vahel ootama SIGTERM ja SIGKILL signaalid. Vaikimisi on viis sekundit, kuid seda väärtust saab muuta nupuga -t sek valik.

Telinit saavad kasutada ainult vastavate õigustega kasutajad.

The Selles binaarne kontrollib, kas see on nii Selles või Telinit vaadates selle protsessi ID-d. Tõeline Sellesprotsessi ID on alati 1. Sellest järeldub, et helistamise asemel Telinit, saab inimene kasutada Selles otseteena.