Versiunea în limba engleză a acestui articol provine din: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/
1. Despre /etc/init.d Dacă ai folosit vreodată un sistem Linux, atunci ai auzit de directorul init.d. La ce folosește exact acest catalog? La finalul zilei face un singur lucru, dar nu este un lucru trivial, se face pentru întregul sistem, deci este foarte important. Directorul init.d conține multe scripturi de start și stop pentru diverse servicii ale sistemului. Controlează totul, de la acpid la x11-common. Desigur, init.d este departe de a fi atât de simplu. (Notă a traducătorului: ACPID este un nou standard de management al energiei pentru sistemele de operare Linux; X11 este numit și sistemul X Window, X Window system (X11 sau X) este un sistem de ferestre cu afișare bitmap. Este un set de instrumente standard și un protocol pentru construirea interfețelor grafice cu utilizatorul pe Unix și sisteme de operare asemănătoare Unix, precum și OpenVMS, și poate fi folosit pentru aproape toate sistemele de operare moderne. Când te uiți la directorul /etc, vei găsi multe directoare care există sub forma rc#.d (unde # reprezintă un nivel de inițializare specificat, intervalul fiind 0~6). În cadrul acestor directoare, există multe scripturi care controlează procesul. Aceste scripturi încep fie cu "K", fie cu "S". Scripturile care încep cu K rulează înaintea celor care încep cu S. Locul unde sunt plasate aceste scripturi va determina când încep rularea. Între aceste directoare, serviciile de sistem funcționează împreună ca o mașină sănătoasă. Totuși, uneori vrei să începi sau să oprești un proces curat, fără să folosești comenzile kill sau killall. Aici este util /etc/init.d! Dacă folosești un sistem Fedora, poți găsi acest director: /etc/rc.d/init.d. De fapt, face același lucru indiferent unde pui init.d. Pentru a putea folosi scripturi în directorul init.d, ai nevoie de privilegii root sau sudo. Fiecare script va fi rulat ca o comandă, structurată aproximativ astfel: /etc/init.d/opțiune comandă comand este comanda care rulează efectiv, iar opțiunile pot fi următoarele: Startul opreşte-te Reîncărcare Repornire Reîncărcare forțată În majoritatea cazurilor, vei folosi opțiunile start, stop, restart. De exemplu, dacă vrei să oprești rețeaua, poți folosi o comandă de genul:
/etc/init.d/networking stop Un alt exemplu este că schimbi setările rețelei și trebuie să o repornești. Poți folosi comenzi de genul acesta: /etc/init.d/restart de rețea Scripturile de inițializare utilizate frecvent în directorul init.d sunt:
Networking Samba apache2 FTPD sshd porumbelul mysql Desigur, s-ar putea să ai și alte scripturi folosite mai frecvent, în funcție de sistemul de operare Linux pe care îl ai instalat. 2. Despre /etc/rc.local rc.local este și un script pe care îl folosesc mult. Scriptul se execută după ce scriptul la nivel de inițializare a sistemului a fost rulat, deci este sigur să adaugi scriptul pe care vrei să-l rulezi după ce sistemul pornește. Un caz comun este că poți adăuga un script NFS mount/mount la el. Poți adăuga și comenzi script pentru depanare în interior. De exemplu, m-am confruntat cu această situație în care serviciul samba nu funcționează întotdeauna corect, iar inspecția arată că samba ar fi trebuit să fi pornit și executat la pornirea sistemului, adică configurația daemonului samba asigură că această funcție trebuie executată corect. În acest caz, de obicei nu petrec mult timp căutând de ce, trebuie doar să adaug această replică în scriptul /etc/rc.local: /etc/init.d/samba start Astfel, problema excepției de serviciu SAMBA a fost rezolvată cu succes.
3. Rezumat Linux este flexibil. Datorită flexibilității sale, putem găsi întotdeauna multe modalități diferite de a rezolva aceeași problemă. Exemplul de a începe un serviciu de sistem este un exemplu bun. Cu scriptul din directorul /etc/init.d, împreună cu instrumentul puternic /etc/rc.local, poți fi sigur că serviciul tău va funcționa perfect.
|