Den engelske version af denne artikel stammer fra: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/
1. Om /etc/init.d Hvis du nogensinde har brugt et Linux-system, har du hørt om init.d-mappen. Hvad er dette katalog egentlig til? Det gør kun én ting i sidste ende, men det er ikke en triviel ting, det gøres for hele systemet, så det er meget vigtigt. Directory init.d indeholder mange start- og stopscripts for forskellige tjenester i systemet. Den styrer alt fra acpid til x11-common. Selvfølgelig er init.d langt fra så enkelt. (Oversætterens note: ACPID er en ny standard for strømstyring til Linux-operativsystemer; X11 kaldes også X Window system, X Window system (X11 eller X) er et vinduessystem med bitmap-visning. Det er et standardværktøj og protokol til at bygge grafiske brugergrænseflader på Unix og Unix-lignende operativsystemer samt OpenVMS, og kan bruges til næsten alle moderne operativsystemer. Når du kigger i /etc-mappen, vil du finde mange mapper, der findes i form af rc#.d (hvor # repræsenterer et angivet initialiseringsniveau, intervallet er 0~6). Under disse kataloger er der mange manuskripter, der styrer processen. Disse skrifttyper starter enten med et "K" eller et "S". Scripts, der starter med K, kører før scripts, der starter med S. Hvor disse scripts placeres, afgør, hvornår de begynder at køre. Mellem disse mapper arbejder systemtjenester sammen som en sund maskine. Men nogle gange vil du starte eller dræbe en proces rent uden at bruge dræb- eller dræbskommandoerne. Det er her, /etc/init.d kommer til nytte! Hvis du bruger et Fedora-system, kan du finde denne mappe: /etc/rc.d/init.d. Faktisk gør den det samme, uanset hvor du sætter init.d. For at kunne bruge scripts i init.d-mappen skal du have root- eller sudo-rettigheder. Hvert script vil blive kørt som en kommando, som er struktureret omtrent som følger: /etc/init.d/command-mulighed Comand er den faktiske kommando, der kører, og mulighederne kan være som følger: Start Stop Genindlæsning Genstart Kraftgenladning I de fleste tilfælde bruger du start-, stop- og genstart-mulighederne. For eksempel, hvis du vil slukke netværket, kan du bruge en kommando som denne:
/etc/init.d/networking stop Et andet eksempel er, at du ændrer dine netværksindstillinger og skal genstarte netværket. Du kan bruge kommandoer som disse: /etc/init.d/netværksgenstart De almindeligt anvendte initialiseringsscripts i init.d-mappen er:
Netværk samba apache2 FTPD sshd Duehus MySQL Selvfølgelig kan du have andre, mere almindeligt brugte scripts, afhængigt af hvilket Linux-operativsystem du har installeret. 2. Om /etc/rc.local rc.local er også et script, jeg bruger meget. Scriptet eksekveres, efter at systeminitialiseringsniveau-scriptet er kørt, så det er sikkert at tilføje det script, du vil køre, efter systemet er startet op. Et almindeligt tilfælde er, at du kan tilføje et NFS mount/mount-script til det. Du kan også tilføje nogle script-kommandoer til fejlfinding indenfor. For eksempel har jeg oplevet denne situation, hvor samba-tjenesten altid ikke fungerer korrekt, og inspektionen viser, at samba burde være startet og udført under systemopstart, det vil sige, at samba-daemon-konfigurationen sikrer, at denne funktion udføres korrekt. I dette tilfælde gider jeg som regel ikke bruge meget tid på at undersøge hvorfor, jeg skal bare tilføje denne linje til /etc/rc.local-scriptet: /etc/init.d/samba start På denne måde blev problemet med SAMBA-serviceundtagelsen løst med succes.
3. Resumé Linux er fleksibelt. På grund af dets fleksibilitet kan vi altid finde mange forskellige måder at løse det samme problem på. Eksemplet med at starte en systemtjeneste er et godt eksempel. Med scriptet i /etc/init.d-mappen, kombineret med det kraftfulde værktøj /etc/rc.local, kan du være sikker på, at din service vil køre fejlfrit.
|