Cara Gunakake Command Init ing Linux

Init minangka induk kabeh proses. Peran utama yaiku nggawe proses saka naskah sing disimpen ing file / etc / inittab (pirsani inittab (5)). Berkas iki biasane duwe entri sing nimbulake init kanggo ngasilake getty s ing saben baris sing pangguna bisa mlebu. Sampeyan uga ngontrol proses otonomi sing dibutuhake dening sistem tartamtu.

Runlevels

Runlevel yaiku konfigurasi piranti lunak saka sistem sing mung ngidini grup pangolahan sing dipilih. Pangolahan diwiwiti dening init kanggo saben runlevels sing ditemtokake ing file / etc / inittab . Init bisa dadi siji saka wolung runlevels: 0-6 lan S utawa s . Runlevel diganti kanthi nduwe hak istimewa pangguna telinit , sing ngirim sinyal sing cocok marang init , nyatakake kang bisa diowahi dadi runlevel.

Runlevels 0 , 1 , lan 6 wis dilindhungi. Runlevel 0 dipigunakaké kanggo ngalahaké sistem, runlevel 6 digunakake kanggo reboot sistem, lan runlevel 1 digunakake kanggo njaluk sistem mudhun dadi mode user tunggal. Runlevel S ora bener digunakake kanggo langsung, nanging luwih kanggo skrip sing dileksanakake nalika ngetik runlevel 1. Kanggo informasi luwih lengkap babagan iki, pirsani manpages shutdown (8) lan inittab (5).

Runlevels 7-9 uga bener, nanging ora bisa didhokumentasikake. Iki amarga varian "tradisional" Unix ora digunakake. Yen sampeyan pengin ngerti, runlevels S lan s pancen padha. Secara internal kasebut ana alias kanggo runlevel padha.

Booting

Sawise init diarani minangka langkah pungkasan saka urutan boot kernel, katon berkas / etc / inittab kanggo ndeleng manawa ana entri initdefault jinis (pirsani inittab (5)). Entri initdefault nemtokake runlevel awal sistem kasebut. Yen ora ana entri kasebut (utawa ora / etc / inittab ing kabeh), runlevel kudu dilebokake ing console sistem.

Runlevel S utawa s nggawa sistem menyang mode pangguna tunggal lan ora mbutuhake berkas / etc / inittab . Ing mode panganggo tunggal, cangkang root dibukak ing / dev / console .

Nalika ngetik mode user tunggal, init maca konsol ioctl (2) saka /etc/ioctl.save . Yen berkas iki ora ana, init ngesyahake baris ing 9600 baud lan nganggo setelan CLOCAL . Nalika init ninggalake mode pangguna siji, nyimpen setelan ioctl ing console kasebut supaya bisa digunakake maneh kanggo sesi siji pengguna sing sabanjure.

Nalika ngetik mode multi-user sakdurunge, init nglakokake boot lan entri bootwait kanggo ngidini sistem berkas dipasang sadurunge pangguna bisa mlebu. Banjur kabeh entri sing cocog karo runlevel bakal diproses.

Nalika miwiti proses anyar, init pisanan mriksa manawa file / etc / initscript ana . Yen ora, nggunakake script iki kanggo miwiti proses kasebut.

Saben wektu bocah mandheg, init nyatet kasunyatan lan alasan sing tilar donya ing / var / run / utmp lan / var / log / wtmp , yen ana file-file kasebut.

Ngganti Runlevels

Sawise mecah kabeh proses sing ditetepake, init ngenteni salah sawijining proses katurunan mati, sinyal tenaga listrik, utawa nganti diarani telinit kanggo ngganti runlevel sistem. Nalika salah siji saka telung kahanan kasebut ana, bakal mriksa file / etc / inittab maneh . Entri anyar bisa ditambahake ing berkas iki kapan wae. Nanging, panas isih ngenteni salah siji saka telung kondisi kasebut kanggo kedadeyane. Kanggo nyedhiyakake respon cepet, telinit Q utawa q perintah bisa tangi init kanggo mriksa ulang berkas / etc / inittab .

Yen init ora ana ing mode pangguna siji lan bakal nampani sinyal powerfail (SIGPWR), bisa maca file / etc / powerstatus . Iku banjur miwiti printah adhedhasar isi berkas iki:

F (AIL)

Daya gagal, UPS nyedhiyakake daya. Nglakokake entri powerwait lan powerfail .

O (K)

Daya wis dibalèkaké, nglakokaké entri powerokwait .

L (OW)

Daya gagal lan UPS nduweni baterei sing kurang. Nglakokne entri powerfailnow .

Yen / etc / powerstatus ora ana utawa ngemot apa-apa, banjur huruf F , O utawa L , init bakal tumindak kaya-kaya maca huruf F.

Panganggoan SIGPWR lan / etc / powerstatus ora ana. Sapa sing pengin interaksi karo init kudu nggunakake saluran kontrol / dev / initctl - ndeleng kode sumber paket sysvit kanggo dokumentasi liyane babagan iki.

Nalika init dijaluk kanggo ngganti runlevel, ngirim sinyal peringatan SIGTERM menyang kabeh proses sing ora ditemtokake ing runlevel anyar. Iku banjur ngenteni 5 detik sadurunge paksa proses kasebut liwat sinyal SIGKILL . Elinga yen init nganggep kabeh proses kasebut (lan keturunane) tetep ing grup proses sing padha sing digawe dening init kanggo dheweke. Yen proses apa wae sing ngganti afiliasi grup proses kasebut ora bakal nampa sinyal kasebut. Proses kasebut kudu dibungkem kanthi kapisah.

Telinit

/ sbin / telinit disambung menyang / sbin / init . Butuh argumen siji-karakter lan sinyal init kanggo nindakake tindakan sing cocok. Argumen kasebut minangka kagiyatan kanggo telinit :

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

nyritakake panas kanggo ngalih menyang level run.

a , b , c

nyritakake init kanggo ngolah mung entri berkas / etc / inittab sing nduweni runlevel a , b utawa c .

Q utawa q

kirim init kanggo mriksa berkas / etc / inittab maneh .

S utawa s

Kandhani init kanggo ngalih menyang mode pangguna tunggal.

U utawa sampeyan

ngomongake panas maneh maneh (njaga negara). Ora ana pemeriksa ulang berkas / etc / inittab sing kedadeyan. Tingkat mlayu kudu dadi salah sijine Ss12345 , yen ora bakal ditolak .

Telinit uga bisa ngomong init suwene kudu ngenteni ing antarane ngirim pangolahan sinyal SIGTERM lan SIGKILL. Default punika 5 detik, nanging iki bisa diganti nganggo opsi -t sec .

Telinit bisa digunakake mung dening pangguna kanthi hak istimewa.

Pamirso binar panas yen wis panas utawa telinit kanthi ndeleng proses id ; id proses panas nyata 1 . Saka kasebut, yen tinimbang nelpon telinit, bisa uga mung nggunakake init tinimbang minangka trabasan.