sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #72520
Re: Ingen lyd efter ny kerne
Steffen wrote:
Den Fri, 09 Apr 2004 20:56:04 +0200. skrev Jon Svejgaard:
g prop modprobe-kommandoerne ind i det; sørg for at
scriptet bliver kørt under opstart af systemet. Kig på scriptene i
etc/rc3.d for at få inspiration.
Hvordan sørger jeg for at scriptet bliver kørt ved opstart?
*Minikursus i opstarts-(og stop-)scripts for RedHat m.fl.:*
I /etc/init.d (så vidt jeg husker) ligger der master scripts for
opstarts-handlinger. Disse scripts linkes til forskellige directories i
/etc. Disse directories hedder rc<runlevel>.d, således at til runlevel 3
findes der et directory, som hedder /etc/rc3.d.
Lave du nu et symbolsk link fra et script i /etc/init.d til /etc/rc3.d
og kalder linket SxxNoget (hvor xx er et nummer,af hensyn til
rækkefølgen, tingene skal ske i), vil systemet udføre disse SxxScripts
ved skift til det pågældende runlevel efter konventionen, at der udføres
kommandoen "/etc/rcy.d/SxxScript start", idet konventionen også er, at
et sådant script kan tage parametrene "start" og "stop" og reagere
intelligent på dem, således at man kan bruge det samme script til start
hhv. stop af en service. Alle scripts, som hedder noget med KxxNavn vil
blive brugt som "stop-scripts" i forbindelse med skift af runlevel.
Det er derfor, der i etc/rc0.d er en lang række "KxxSsripts", eftersom
runlevel 0 jo er ensbetydende med nedlukning af maskinen, hvor alle
servces skal bringes til standsning...
Skift af runlevel sker forresten med kommanoden "telinit level" hvor
"level" kan være 0 for nedlukning, 6 for genstart, og 2,3,4 eller andet
for normal "produktionslevel". Der er typisk et level for multiuser mode
(2 eller 3) og for multiuser med X-Window aktiveret (4,5).
DVS du laver et script som du lægger i /etc/init.d (eller hvad det nu
hedder), som ser således ud:
<script>
#!/bin/bash
# modprobe script
case $1 in
start)
modprobe modul1
modprobe modul2
......
;;
stop) ;; #ingenting, moduler stoppes ikke
esac
</script>
Scriptet skal være eksekverbart (chmod 755).
derefter laver du et symbolsk link til /etc/rcx.d, hvor "x" er det
runlevel, i hvilket du gerne vil bruge de pågældende moduler; det
symbolske link kalder du f.eks. SyyMymodules, hvor "yy" er et tal, som
får scriptet til at glide ind på en plads, så det bliver eksekveret
EFTER andre scripts, som er en forudsætning for at scriptet kan fungere,
og FØR andre scripts, som det kan tænkes at være en forudsætning for.
Det er lidt nemmere at overskue, hvis man kigger i /etc/rcx.d og ser
hvilke scripts, som ligger dér.
Lidt snusen rundt kombineret med lidt tankevirksomhed vil gøre
underværker for forståelsen af principperne i det; forresten kaldes
metoden "SYSVinit" efter UNIX System V (5).
Håber det gav lidt hjælp; ellers spørg igen.
MVH
Jón
Follow ups
References