Bli kjent med Linux: The /etc/init.d Directory

Hvis du bruker Linux du mest sannsynlig har hørt om init.d katalogen. Men hva betyr denne katalogen gjøre? Det gjør til slutt en ting, men det gjør at en ting for hele systemet, så init.d er svært viktig. Den init.d katalogen inneholder et antall start /stopp-skript for ulike tjenester på systemet ditt. Alt fra acpid
til x11-common
styres fra denne katalogen. Selvfølgelig er det ikke akkurat så enkelt

Hvis du ser på /etc katalogen vil du finne kataloger som er i form rc # .D (Der # er et tall reflekterer et bestemt initialisering nivå -. Fra 0 til 6). Innenfor hver av disse katalogene er en rekke andre scripts som styrer prosessene. Disse skriptene vil enten begynne med en "K" eller en "S". Alle "K" skript kjøres før "S" skript. Og avhengig av hvor skriptene er plassert vil avgjøre når skriptene starte. Mellom kataloger system tjenester fungerer sammen som en velsmurt maskin. Men det er tider når du trenger for å starte eller stoppe en prosess rent og uten å bruke kill eller killall kommandoer. Det er der /etc/init.d katalogen kommer i hendig.

Nå hvis du bruker en fordeling som Fedora du kan finne denne katalogen i /etc/rc.d/init.d. Uavhengig av sted, det tjener samme formål.


For å kontrollere noen av skript i init.d manuelt må du ha root (eller sudo) tilgang. Hver skriptet skal kjøres som en kommando og strukturen av kommandoen vil se ut:

/etc/init.d/command VALG

Hvor kommando
er selve kommandoen for å kjøre og VALG
kan være en av de following:


start

stop

reload

restart

force-reload

Most ofte vil du bruke enten start, stopp, etter eller restart.
Så hvis du ønsker å stoppe nettverket ditt kan du gi kommandoen:

/etc/init.d/networking stopp

Eller hvis du gjør en endring til nettverket og må starte den, kan du gjøre det med følgende kommando:

/etc/init.d/networking restart

Noen av de mer vanlige init skript i denne katalogen are:


networking

samba

apache2

ftpd

sshd

dovecot

mysql

Of Selvfølgelig kan det være mer ofte brukte scripts i katalogen din - det avhenger av hva du har installert. Listen over er hentet fra en Ubuntu Server 8.10 installasjonen så en standard stasjonær installasjon ville ha et par mindre nettverk-type skript.

Men hva /etc/rc.local

Det er et tredje alternativ som jeg pleide å bruke ganske mye. Dette alternativet er det /etc/rc.local script. Denne filen løper etter alle andre init nivå scripts har kjørt, så det er trygt å sette ulike kommandoer som du ønsker å ha utstedt ved oppstart. Mange ganger jeg vil plassere monteringsanvisningen for ting som nfs i dette skriptet. Dette er også et bra sted å plassere "Feilsøking" skript i. For eksempel, når jeg hadde en maskin som, av en eller annen grunn, virket samba til ikke vil starte. Selv afer kontrollerer at Samba daemon ble satt opp for å initial ved oppstart. Så i stedet for å bruke all min tid opp foran med dette jeg bare plassert linjen:

/etc/init.d/samba starte

i /etc /rc.local og Samba virket som en sjarm. Til slutt vil jeg komme tilbake og problemer med å skyte dette problemet.

Final Thoughts

Linux er fleksibel. Linux er så fleksibel det er nesten uunngåelig, mange måter å løse et enkelt problem. Starte en systemtjeneste er en slik sak. Med hjelp av /etc/init.d systemet (samt /etc/rc.local) kan du stort sett trygg tjenesten vil starte. Anmeldelser