Den engelska versionen av denna artikel är från: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/
1. Om /etc/init.d Om du någonsin har använt ett Linux-system har du hört talas om katalogen init.d. Vad är den här katalogen egentligen till för? Det gör bara en sak i slutändan, men det är inte en trivial sak, det görs för hela systemet, så det är mycket viktigt. Katalogen init.d innehåller många start- och stoppskript för olika tjänster i systemet. Den styr allt från acpid till x11-common. Självklart är init.d långt ifrån så enkelt. (Översättarens anmärkning: ACPID är en ny standard för energihantering för Linux-operativsystem; X11 kallas också X Window-system, X Window-systemet (X11 eller X) är ett fönstersystem med bitmap-visning. Det är en standardverktygslåda och protokoll för att bygga grafiska användargränssnitt på Unix och Unix-liknande operativsystem, samt OpenVMS, och kan användas för nästan alla moderna operativsystem. När du tittar i katalogen /etc hittar du många kataloger som finns i form av rc#.d (där # representerar en specificerad initialiseringsnivå, intervallet är 0~6). Under dessa kataloger finns många manus som styr processen. Dessa skriftsystem börjar antingen med ett "K" eller ett "S". Skript som börjar på K körs före skript som börjar på S. Var dessa skript placeras avgör när de börjar köras. Mellan dessa kataloger fungerar systemtjänster tillsammans som en sund maskin. Men ibland vill du starta eller döda en process rent utan att använda kommandona döda eller döda. Det är där /etc/init.d kommer till nytta! Om du använder ett Fedora-system kan du hitta denna katalog: /etc/rc.d/init.d. Faktiskt gör den samma sak oavsett var du lägger in init.d. För att kunna använda skript i init.d-katalogen behöver du root- eller sudo-behörigheter. Varje skript körs som ett kommando, som är ungefär strukturerat enligt följande: /etc/init.d/kommandoalternativ Comand är det faktiska kommandot som körs, och alternativen kan vara följande: Start Stanna Ladda om Starta om Kraftomladdning I de flesta fall använder du start-, stopp- och omstartsalternativen. Till exempel, om du vill stänga av nätverket kan du använda ett kommando som detta:
/etc/init.d/networking stopp Ett annat exempel är att du ändrar dina nätverksinställningar och behöver starta om ditt nätverk. Du kan använda kommandon som dessa: /etc/init.d/nätverksomstart De vanligaste initialiseringsskripten i init.d-katalogen är:
Nätverkande Samba Apache2 ftpd sshd Duvkår MySQL Självklart kan du ha andra mer vanligt använda skript, beroende på vilket Linux-operativsystem du har installerat. 2. Om /etc/rc.local rc.local är också ett skript jag använder mycket. Skriptet körs efter att systeminitialiseringsnivåskriptet har körts, så det är säkert att lägga till det skript du vill köra efter att systemet startat upp. Ett vanligt fall är att du kan lägga till ett NFS-mount/mount-skript till det. Du kan också lägga till några skriptkommandon för felsökning inuti. Till exempel har jag stött på denna situation där sambatjänsten alltid inte fungerar korrekt, och inspektionen visar att samba borde ha startat och körts under systemstart, det vill säga att samba-daemonkonfigurationen säkerställer att denna funktion utförs korrekt. I det här fallet brukar jag inte bry mig om att lägga så mycket tid på att leta efter varför, jag behöver bara lägga till den här raden i /etc/rc.local-skriptet: /etc/init.d/samba start På detta sätt löstes problemet med SAMBA service exception framgångsrikt.
3. Sammanfattning Linux är flexibelt. Tack vare dess flexibilitet kan vi alltid hitta många olika sätt att lösa samma problem. Exemplet med att starta en systemtjänst är ett bra exempel. Med skriptet i katalogen /etc/init.d, tillsammans med det kraftfulla verktyget /etc/rc.local, kan du vara säker på att din tjänst kommer att fungera felfritt.
|