Bli kjent med Linux: /etc/init.d-katalogen
- Kategori: Linux
Hvis du bruker Linux har du sannsynligvis hørt om det init.d katalogen. Men hva gjør egentlig denne katalogen? Det gjør til syvende og sist en ting, men det gjør den en ting for hele systemet ditt init.d er veldig viktig. De init.d katalogen inneholder en rekke start / stopp skript for forskjellige 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 finner du kataloger som er i skjemaet rc # .d (Hvor # er et tall reflekterer et spesifikt initialiseringsnivå - fra 0 til 6). Innenfor hvert av disse katalogene er det en rekke andre skript som kontrollerer prosesser. Disse skriptene begynner enten med et 'K' eller et 'S'. Alle 'K' -skript kjøres før 'S'-skript. Og avhengig av hvor skriptene ligger, vil avgjøre når skriptene starter. Mellom katalogene fungerer systemtjenestene som en oljet maskin. Men det er tider når du trenger å starte eller stoppe en prosess rent og uten å bruke kill- eller killall-kommandoene. Det er her /etc/init.d katalogen kommer godt med.
Hvis du nå bruker en distribusjon som Fedora, kan du finne denne katalogen i /etc/rc.d/init.d . Uansett beliggenhet tjener det samme formål.
For å kontrollere noen av skriptene i init.d manuelt må du ha root (eller sudo) tilgang. Hvert skript kjøres som en kommando, og strukturen i kommandoen vil se ut:
/etc/init.d/command OPTION
Hvor kommando er den egentlige kommandoen for å kjøre og ALTERNATIV kan være ett av følgende:
- start
- Stoppe
- reload
- omstart
- kraft-påfyllings
Oftest bruker du heller start stopp, eller omstart. Så hvis du vil stoppe nettverket ditt, kan du gi kommandoen:
/etc/init.d/nettstopp
Eller hvis du gjør en endring i nettverket og trenger å starte det på nytt, kan du gjøre det med følgende kommando:
/etc/init.d/nettstart på nytt
Noen av de mer vanlige init-skriptene i denne katalogen er:
- nettverk
- samba
- apache2
- ftpd
- sshd
- dovecot
- mysql
Selvfølgelig kan det være oftere brukte skript i katalogen din - det kommer an på hva du har installert. Listen over ble hentet fra en Ubuntu Server 8.10-installasjon slik at en standard stasjonær installasjon ville ha noen få mindre skript av nettverkstypen.
Men hva med /etc/rc.local
Det er et tredje alternativ som jeg pleide å bruke ganske mye. Dette alternativet er /etc/rc.local manus. Denne filen kjøres etter at alle andre skript på init-nivå har kjørt, så det er trygt å legge forskjellige kommandoer du vil ha utstedt ved oppstart. Mange ganger legger jeg monteringsinstruksjoner for ting som nfs i dette skriptet. Dette er også et bra sted å plassere 'feilsøking' -skript i. For eksempel hadde jeg en gang en maskin som samba av en eller annen grunn ikke så ut til å starte. Selv etterkontroll for å sikre at Samba-demonet ble satt opp for å initialisere ved oppstart. Så i stedet for å bruke all min tid på forhånd med dette, plasserte jeg ganske enkelt linjen:
/etc/init.d/samba start
i /etc/rc.local manus og Samba fungerte som en sjarm. Etter hvert ville jeg komme tilbake og problemer med å skyte dette problemet.
Siste tanker
Linux er fleksibel. Linux er så fleksibel at det nesten, uunngåelig, er mange måter å løse et enkelt problem på. Å starte en systemtjeneste er et slikt problem. Ved hjelp av /etc/init.d system (samt /etc/rc.local ) kan du være ganske sikker på at tjenesten din starter.