Spoznajte Linux: Imenik /etc/init.d
- Kategorija: Linux
Če uporabljate Linux, ste najverjetneje že slišali za init.d imenik. Toda kaj natančno počne ta imenik? Na koncu naredi eno stvar, vendar to stori ena stvar za celoten sistem, torej init.d je zelo pomembno. The init.d imenik vsebuje številne skripte za zagon / zaustavitev za različne storitve v vašem sistemu. Vse od hitro do x11-pogosti je pod nadzorom tega imenika. Seveda ni ravno tako preprosto.
Če pogledate na / itd v imeniku boste našli imenike, ki so v obliki rc # .d (Če je številka #, odraža določeno stopnjo inicializacije - od 0 do 6). Znotraj teh imenikov je več drugih skript, ki nadzirajo procese. Ti skripti se bodo začeli z 'K' ali 'S'. Vsi skripti 'K' se izvajajo pred skriptami 'S'. In odvisno od tega, kje se skripte nahajajo, bo določeno, kdaj se skripte začnejo. Sistemske storitve med imeniki delujejo skupaj kot dobro namazan stroj. Vendar obstajajo časi, ko morate postopek začeti ali ustaviti čisto in brez uporabe ukazov kill ali killall. Tu je tisto /etc/init.d Imenik pride prav.
Če uporabljate distribucijo, kot je Fedora, boste morda našli ta imenik v /etc/rc.d/init.d . Ne glede na lokacijo služi istemu namenu.
Za nadzor katerega koli od skript v init.d ročno morate imeti korenski (ali sudo) dostop. Vsak skript se bo izvajal kot ukaz in struktura ukaza bo videti:
/etc/init.d/command MOŽNOST
Kje ukaz je dejanski ukaz za zagon in MOŽNOST je lahko eno od naslednjih:
- začetek
- ustavi se
- ponovno naloži
- ponovni zagon
- ponovno naloži
Najpogosteje boste uporabljali katero koli začeti, ustaviti, ali ponovni zagon. Če želite ustaviti omrežje, lahko izdate ukaz:
/etc/init.d/networking stop
Če spremenite svoje omrežje in ga morate znova zagnati, lahko to storite z naslednjim ukazom:
/etc/init.d/networking znova zaženite
Nekateri pogostejši skripti init v tem imeniku so:
- mreženje
- samba
- apache2
- ftpd
- sshd
- golobica
- mysql
Seveda lahko v vašem imeniku obstajajo pogosteje uporabljeni skripti - odvisno je od tega, kaj ste namestili. Zgornji seznam je bil vzet iz namestitve Ubuntu Server 8.10, tako da bi običajna namizna namestitev imela nekaj manj skriptov v omrežju.
Kaj pa /etc/rc.local
Obstaja tretja možnost, ki sem jo precej uporabljal. Ta možnost je /etc/rc.local skripta. Ta datoteka se požene po zagonu vseh drugih skriptov init ravni, zato je varno vnesti različne ukaze, ki jih želite izdati ob zagonu. Velikokrat bom v ta skript umestil navodila za namestitev stvari, kot je nfs. To je tudi dobro mesto za umestitev skriptov za odpravljanje težav. Na primer, ko sem imel stroj, ki sambe iz nekega razloga, kot kaže, ne želi zagnati. Celo afer preverjanje, da se prepriča, da je Samba demon pripravljen za inicializacijo ob zagonu. Zato sem namesto tega ves svoj čas porabil spredaj in preprosto postavil črto:
/etc/init.d/samba start
v /etc/rc.local scenarij in Samba sta delovala kot čar. Sčasoma bi se vrnil in s težavo rešil to vprašanje.
Končne misli
Linux je prilagodljiv. Linux je tako prilagodljiv, da obstaja skoraj neizogiben način za rešitev ene same težave. Zagon sistemske storitve je eno takšnih vprašanj. S pomočjo /etc/init.d sistem (kot tudi /etc/rc.local ) lahko ste skoraj prepričani, da se bo vaša storitev začela.