View previous topic :: View next topic |
Author |
Message |
pablo_supertux Advocate
Joined: 25 Jan 2004 Posts: 2953 Location: Somewhere between reality and Middle-Earth and in Freiburg (Germany)
|
Posted: Wed Mar 29, 2006 6:06 pm Post subject: Reihenfolge der init Skripte |
|
|
Init Skripte für gentoo zu schreiben ist wirklich leicht, ich hab kaum Probleme damit. Es gibt nur eins, womit ich mich immer ein wenig beschäftigen muss und manhcmal gar nicht hinkrige: Die Startreihenfolge.
Ich arbeite an einem Projekt, welches eine Install LiveDVD hat. Die LiveDVD habe ich mit Gentoo erstellt und es läuft alles ganz gut. Man startet den PC mit der LiveDVD und ein Install Skript wird ausgeführt. Dieses Skript fragt nach dem Rechnernamen und danach installiert die DVD den Rechner neu.
Jetzt ist mir eigentlich eingefallen, dass ich das Fragen nach dem Rechnername gar nicht brauche, ich brauche lediglich die MAC Adresse der Netzwerkkarte (die man über /sys/class/net.... gelesen werden kann) zu lesen und damit erfährt mein Skript, um welches Rechner es sich handelt.
Also habe ich mir ein Init Skript geschrieben (resolve_client) und will, dass es vor hostname ausgeführt wird. Also habe ich geschrieben:
Code: |
depend() {
before hostname
}
|
und dann rc-update add resolve_client boot ausgeführt. Dann ISO Datei erstellt (zum Debuggen nur eine CD ISO, also nur 100 MB groß) und gebrannt und ausprobiert. Das Problem ist, resolve_client wird als letztes von den "boot" Skripte gestartet und gerade vor den "default" Skripte gestartet. Warum?
Dann habe ich /etc/init.d/hostname so geändert:
Code: |
depend() {
need checkroot resolve_client
}
|
und dann wieder getestet. Das habe ebenfalls nichts gebracht. Aber wenn ich von der LiveDVD /sbin/rc boot ausführe, dann wird resolv_client vor hostname ausgeführt, aber beim echten Boot nicht. Warum?
Dann habe ich resolve_client wieder geändert
Code: |
depend() {
need checkroot
before hostname
}
|
ebenfalls gar nichts gebracht was zumTeufel mache ich falsch???
wie kann ich denn am besten testen, in welche Reihenfolge die Skripte ausgeführt werden, ohne die LiveCD neu starten zu müssen? _________________ A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth! |
|
Back to top |
|
|
pablo_supertux Advocate
Joined: 25 Jan 2004 Posts: 2953 Location: Somewhere between reality and Middle-Earth and in Freiburg (Germany)
|
Posted: Thu Mar 30, 2006 8:31 pm Post subject: |
|
|
*bump*
hoffentlich kann mir noch irgendjemand helfen. _________________ A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth! |
|
Back to top |
|
|
schmutzfinger Veteran
Joined: 26 Oct 2003 Posts: 1287 Location: Dresden/Germany
|
Posted: Fri Mar 31, 2006 1:28 am Post subject: |
|
|
Wenn du das ganze eh brennst und auch damit leben kannst bestehende scripte anzupassen dann schreibe doch einfach alles was dein resolv script macht in hostname mit rein. Das würde ich machen wenn ich das Ganze nur schlecht testen kann (brennen und booten). |
|
Back to top |
|
|
Earthwings Bodhisattva
Joined: 14 Apr 2003 Posts: 7753 Location: Germany
|
Posted: Fri Mar 31, 2006 6:08 am Post subject: |
|
|
hostname ist einer der "critical services" für /sbin/rc. Um etwas vorher zu starten, muss es ebenfalls als critical service markiert sein. Das erreichst du, indem du es in /etc/runlevels/boot/.critical einträgst. Die Datei existiert wahrscheinlich nicht, trag dort dann unbedingt auch die standardmäßigen critical services ein: Code: | checkroot hostname modules checkfs localmount clock | Details siehe /sbin/rc
Edit: Sieht mir nach nem [DUP] von startreihenfolge von init scipten aus. _________________ KDE |
|
Back to top |
|
|
pablo_supertux Advocate
Joined: 25 Jan 2004 Posts: 2953 Location: Somewhere between reality and Middle-Earth and in Freiburg (Germany)
|
Posted: Fri Mar 31, 2006 11:14 am Post subject: |
|
|
schmutzfinger wrote: | Wenn du das ganze eh brennst und auch damit leben kannst bestehende scripte anzupassen dann schreibe doch einfach alles was dein resolv script macht in hostname mit rein. Das würde ich machen wenn ich das Ganze nur schlecht testen kann (brennen und booten). |
daran hatte ich schon gedacht, aber wollte es nicht tun.
Earthwings wrote: | hostname ist einer der "critical services" für /sbin/rc. Um etwas vorher zu starten, muss es ebenfalls als critical service markiert sein. Das erreichst du, indem du es in /etc/runlevels/boot/.critical einträgst. Die Datei existiert wahrscheinlich nicht, trag dort dann unbedingt auch die standardmäßigen critical services ein: Code: | checkroot hostname modules checkfs localmount clock | Details siehe /sbin/rc
Edit: Sieht mir nach nem [DUP] von startreihenfolge von init scipten aus. |
das sieht sehr gut aus, danke.
edit: ich hatte mir schon die /sbin/rc Datei angeschaut aber das mit den critical services ist mir entgangen. Theorethisch könnte ich auch nur get_critical_services ändern. _________________ A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth! |
|
Back to top |
|
|
|