Šio straipsnio versija anglų kalba yra iš: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/
1. Apie /etc/init.d Jei kada nors naudojote "Linux" sistemą, girdėjote apie katalogą init.d. Kam tiksliai skirtas šis katalogas? Dienos pabaigoje jis daro tik vieną dalyką, bet tai nėra nereikšmingas dalykas, tai daroma visai sistemai, todėl tai labai svarbu. Kataloge init.d yra daug įvairių sistemos paslaugų paleidimo ir sustabdymo scenarijų. Jis valdo viską nuo acpid iki x11-common. Žinoma, init.d toli gražu nėra taip paprasta. (Vertėjo pastaba: ACPID yra naujas Linux operacinių sistemų energijos valdymo standartas; X11 taip pat vadinama X Window sistema, X Window sistema (X11 arba X) yra langų sistema su bitmap rodymu. Tai standartinis įrankių rinkinys ir protokolas, skirtas kurti grafines vartotojo sąsajas Unix ir Unix tipo operacinėse sistemose, taip pat OpenVMS, ir gali būti naudojamas beveik visoms šiuolaikinėms operacinėms sistemoms). Pažvelgę į /etc katalogą, rasite daug katalogų, egzistuojančių rc#.d pavidalu (kur # reiškia nurodytą inicijavimo lygį, diapazonas yra 0~6). Šiuose kataloguose yra daug scenarijų, kurie kontroliuoja procesą. Šie scenarijai prasideda "K" arba "S". Scenarijai, prasidedantys raide K, vykdomi prieš scenarijus, prasidedančius raide S. Nuo to, kur šie scenarijai bus įdėti, priklausys, kada jie pradės veikti. Tarp šių katalogų sistemos paslaugos veikia kartu kaip sveika mašina. Tačiau kartais norisi pradėti arba nužudyti procesą švariai, nenaudojant komandų kill or killall. Štai kur praverčia /etc/init.d! Jei naudojate Fedora sistemą, galite rasti šį katalogą: /etc/rc.d/init.d. Tiesą sakant, jis daro tą patį, nesvarbu, kur įdėsite init.d. Kad galėtumėte naudoti scenarijus init.d kataloge, jums reikia root arba sudo teisių. Kiekvienas scenarijus bus vykdomas kaip komanda, kurios struktūra yra maždaug tokia: /etc/init.d/command parinktis comand yra tikroji vykdoma komanda, o parinktys gali būti tokios: Pradėti sustoti, sustok Įkelti iš naujo paleisti iš naujo Priverstinis perkrovimas Daugeliu atvejų naudosite paleidimo, sustabdymo, paleidimo iš naujo parinktis. Pavyzdžiui, jei norite išjungti tinklą, galite naudoti tokią komandą:
/etc/init.d/networking stop Kitas pavyzdys yra tai, kad pakeičiate tinklo nustatymus ir turite iš naujo paleisti tinklą. Galite naudoti tokias komandas: /etc/init.d/networking restart Dažniausiai naudojami inicijavimo scenarijai kataloge init.d yra šie:
tinklų kūrimas samba Apache2 ftpd SSHD Balandis mysql Žinoma, galite turėti ir kitų dažniau naudojamų scenarijų, priklausomai nuo to, kokią Linux operacinę sistemą įdiegėte. 2. Apie /etc/rc.local rc.local taip pat yra scenarijus, kurį naudoju daug. Scenarijus vykdomas paleidus sistemos inicijavimo lygio scenarijų, todėl saugu įtraukti scenarijų, kurį norite vykdyti paleidus sistemą. Dažnas atvejis yra tas, kad prie jo galite pridėti NFS prijungimo / prijungimo scenarijų. Taip pat galite pridėti keletą scenarijaus komandų, skirtų derinimui. Pavyzdžiui, susidūriau su tokia situacija, kai sambos paslauga visada neveikia tinkamai, o patikrinimas rodo, kad samba turėjo būti paleista ir vykdoma paleidžiant sistemą, tai yra, sambos demono konfigūracija užtikrina, kad ši funkcija būtų atlikta teisingai. Šiuo atveju aš paprastai nesivarginu praleisti daug laiko ieškodamas kodėl, man tiesiog reikia pridėti šią eilutę prie /etc/rc.local scenarijaus: /etc/init.d/samba pradžia Tokiu būdu SAMBA paslaugos išimties problema buvo sėkmingai išspręsta.
3. Santrauka Linux yra lankstus. Dėl savo lankstumo visada galime rasti daug skirtingų būdų, kaip išspręsti tą pačią problemą. Sistemos paslaugos paleidimo pavyzdys yra geras pavyzdys. Naudodami scenarijų kataloge /etc/init.d kartu su galingu įrankiu /etc/rc.local, galite būti tikri, kad jūsų paslauga veiks nepriekaištingai.
|