Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 11617|Odgovoriti: 0

[linux] Razumite mapo /etc/init.d in /etc/rc.local skripte na Linux sistemih

[Kopiraj povezavo]
Objavljeno na 13. 11. 2017 11:53:19 | | |
Angleška različica tega članka je iz: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/

1. O /etc/init.d
     Če ste kdaj uporabljali Linux sistem, ste že slišali za imenik init.d. Za kaj točno je ta katalog? Na koncu dneva naredi le eno stvar, a ni trivialna stvar, saj je namenjena celotnemu sistemu, zato je zelo pomembna. Imenik init.d vsebuje veliko začetnih in končnih skript za različne storitve sistema. Nadzoruje vse od acpid do x11-common. Seveda init.d ni tako preprost. (Opomba prevajalca: ACPID je nov standard za upravljanje porabe energije za operacijske sisteme Linux; X11 se imenuje tudi X Window sistem, X Window sistem (X11 ali X) je okenski sistem z bitno mapo prikaza. Gre za standardni komplet orodij in protokol za izdelavo grafičnih uporabniških vmesnikov na Unix in Unixu podobnih operacijskih sistemih, pa tudi na OpenVMS, in ga je mogoče uporabiti skoraj za vse sodobne operacijske sisteme.
    Ko pogledate /etc imenik, boste našli veliko imenikov, ki obstajajo v obliki rc#.d (kjer # predstavlja določeno inicializacijsko raven, razpon je 0~6). Pod temi imeniki je veliko skript, ki nadzorujejo proces. Te pisave se začnejo bodisi z "K" ali z "S". Skripte, ki se začnejo s K, se izvajajo pred tistimi, ki se začnejo s S. Kje bodo te skripte nameščene, bo določilo, kdaj začnejo delovati. Med temi imeniki sistemske storitve delujejo skupaj kot zdrav stroj. Vendar pa včasih želiš proces začeti ali ubiti brez ukazov kill ali killall. Tu pride prav /etc/init.d!
    Če uporabljate Fedora sistem, lahko najdete ta imenik: /etc/rc.d/init.d. Pravzaprav se zgodi isto, ne glede na to, kam vneseš init.d.
     Da bi lahko uporabljali skripte v init.d mapi, potrebujete root ali sudo privilegije. Vsaka skripta se izvaja kot ukaz, ki je strukturiran približno takole:
     /etc/init.d/command option
     COMAND je dejanski ukaz, ki se izvede, možnosti pa so lahko naslednje:
začni
ustavi se
ponovno polnjenje
Ponovni zagon
Prisilno ponovno polnjenje
       V večini primerov boš uporabil možnosti začetek, ustavi, ponovni zagon. Na primer, če želite izklopiti omrežje, lahko uporabite ukaz, kot je ta:
     
         /etc/init.d/networking stop
        Drug primer je, da spremeniš nastavitve omrežja in moraš ponovno zagnati omrežje. Lahko uporabite ukaze, kot so ta:
        /etc/init.d/ponovni začetek omrežja
        Pogosto uporabljene inicializacijske skripte v imeniku init.d so:
      
Mreženje
samba
Apache2
FTPD
SSHD
Golobnik
mysql
         Seveda imate morda tudi druge, bolj pogosto uporabljene skripte, odvisno od tega, kateri Linux operacijski sistem imate nameščen.
2. O /etc/rc.local
      rc.local je tudi skripta, ki jo veliko uporabljam. Skripta se izvede po zagonu skripte na ravni inicializacije sistema, zato je varno, da dodate skripto, ki jo želite zagnati, ko se sistem zažene. Pogost primer je, da lahko vanj dodaš NFS mount ali mount skripto. Lahko dodaš tudi nekaj skriptnih ukazov za razhroščevanje v notranjosti. Na primer, naletel sem na situacijo, kjer storitev samba vedno ne deluje pravilno, pregled pa pokaže, da bi se morala samba začeti in izvesti ob zagonu sistema, torej konfiguracija samba demona zagotavlja, da je ta funkcija pravilno izvedena. V tem primeru običajno ne porabim veliko časa z iskanjem zakaj, samo dodati moram to vrstico v skripto /etc/rc.local:
          /etc/init.d/samba začetek
     Na ta način je bil uspešno rešen problem izjeme SAMBA storitev.

3. Povzetek
         Linux je prilagodljiv. Zaradi svoje prilagodljivosti lahko vedno najdemo veliko različnih načinov za reševanje istega problema. Primer zagona sistemske storitve je dober primer. S skripto v mapi /etc/init.d in zmogljivim orodjem /etc/rc.local ste lahko prepričani, da bo vaša storitev delovala brezhibno.




Prejšnji:Asp.Net Pojavi se v EF6.0, ni najden s fiksnim imenom "System.Data.SqlClient"...
Naslednji:MySQL konfiguracijska datoteka my.cnf je podrobno pojasnjena
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com