Spoznajte Linux: Imenik /etc/init.d

Če uporabljate Linux, ste najverjetneje že slišali za imenik init.d. Toda kaj natančno počne ta imenik? Na koncu naredi eno stvar, vendar to stori ena stvar za vaš celotni sistem, zato je init.d zelo pomemben. Imenik init.d vsebuje številne skripte zagona / zaustavitve za različne storitve v vašem sistemu. Iz tega imenika se nadzoruje vse, od acpid do x11-common . Seveda ni ravno tako preprosto.

Če pogledate v / etc imenik, boste našli imenike v obliki rc # .d (kjer je # številka, ki 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 skripti 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 priročno imenik /etc/init.d .

Č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 ročni nadzor katerega koli skripta v init.d morate imeti korenski (ali sudo) dostop. Vsak skript se bo izvajal kot ukaz in struktura ukaza bo videti:

/etc/init.d/command MOŽNOST

Kjer je dejanski ukaz za zagon in OPTION je lahko eno od naslednjih:

  • začetek
  • ustavi se
  • ponovno naloži
  • ponovni zagon
  • ponovno naloži

Najpogosteje boste uporabili zagon, zaustavitev 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 standardna 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 skript. 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 montažo za stvari, kot je nfs. To je tudi dobro mesto za namestitev skriptov za "odpravljanje težav". Na primer, ko sem imel stroj, ki sambe iz nekega razloga menda ni hotel zagnati. Celo dlje preverjanje, da se prepriča, da je Sambnov 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 scenariju /etc/rc.local in Samba je 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 fleksibilen, da obstaja skoraj neizogiben način za rešitev ene same težave. Zagon sistemske storitve je eno takšnih vprašanj. S sistemom /etc/init.d (pa tudi /etc/rc.local ) lahko zagotovite, da se bo vaša storitev začela.