Hallo liste, nachdem ich einiges an fragen hier (hoffentlich richtig) beantwortet habe moechte auch ich mal was fragen, so trivial es auch klingt... Ich habe lt. einem Beispiel in der liste "top" auf die konsole 9 verbannt. damit "top" beim eintritt in runlevel 2 gestartet wird habe ich mich erstmal in die rc-scripten reingearbeitet, mir die bestehenden angeschaut und sie soweit auch verstanden. dann habe ich in /sbin/init.d ein script "top" angelegt das mir das besagte programm startet. in /sbin/init.d/rc2.d habe ich den link S20top angelegt der auf ../top zeigt. auf K20top habe ich vorerst verzichtet. Das tuts auch wunderbar. aber ich werde das gefuehl nicht los das ich das prinzip dieser scripte noch nicht eingehend verstanden hab. Ich sage euch wie ichŽs verstanden hab und bitte euch mich zu korrigieren bzw. wichtiges zu erlauetern: 1. die eigentlichen scripte werden in /sbin/init.d erstellt. 2. die links in den runlevel-verzeichnissen verweisen auf die scripts in /sbin/init.d 3. das S im link steht fuer start, das K fuer kill 4. die zahl hinter dem S bzw. K (S20cron) gibt die startprioritaet bzw. reihenfolge an. 5. die hauptscripts in /sbin/init.d sollten die variablen "start" und "stop" verstehen damit man dienste manuell starten/beenden kann Fragen: 1. wie werden die zahlen in den links von "init" ausgewertet? beispiel: werden die links mit der zahl 1 zeitlich gesehen vor den 20er links ausgefuehrt? Wenn das so ist stellt sich mit die frage "es gibt mehrere links mit der zahl 20, werden die dann alle gleichzeitig gestartet?" 2. ist meine oben beschriebene loesung als "unsauber" auszuwerten? (wenn man von den tatsachen absieht das weder "start"/"stop" von dem script unterstuetzt wird noch ein kill-link in /sbin/init.d/rc2.d vorliegt) 3. ich schaetze meine loesung _ist_ unsauber, wie kann ich das besser regeln? 4. nach welchen kriterien sollte ich die startprioritaet der scripten waehlen? (S20top oder S50top oder vielleicht S100top?) Wie gesagt, die prinzipielle funktionsweise dieser scripten ist mir ansich bekannt - aber trotzdem fehlt mir noch das noetige hintergrundwissen. Achso: Ich bin _nicht_ lesefaul. ich lese manpages, habe das suse 6.0 handbuch komplett gelesen, habe koflers "linux" gelesen und bin grade bei KirchŽs "network administrators guide" (mein gott, bin grad erst 4 monate dabei und hab mehr gelesen als in den letzten fünf jahren :-). will damit sagen: verweise auf literatur sind willkommen. tschuessi und frohes schaffen :-) thomas -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Hi Thomas, Thomas Reitelbach wrote: ...
Fragen: 1. wie werden die zahlen in den links von "init" ausgewertet? beispiel: werden die links mit der zahl 1 zeitlich gesehen vor den 20er links ausgefuehrt? Wenn das so ist stellt sich mit die frage "es gibt mehrere links mit der zahl 20, werden die dann alle gleichzeitig gestartet?"
da geht es dann nach der sortierung der link-namen.
2. ist meine oben beschriebene loesung als "unsauber" auszuwerten? (wenn man von den tatsachen absieht das weder "start"/"stop" von dem script unterstuetzt wird noch ein kill-link in /sbin/init.d/rc2.d vorliegt)
ja und nein: ja - falls du jemals einen `init s` für den maintenance resp. single user mode machen willst. dann wird nämlich der service nicht beendet und mit `init 2` erneut aktiviert. nein - sofern du dein system aus init 2 resp. init 3 immer nur rebootest oder shutdownst
3. ich schaetze meine loesung _ist_ unsauber, wie kann ich das besser regeln?
nimm eines der von suse gelieferten skripte als vorlage und ändere es auf deine erfordernisse ab: #! /bin/bash # # /sbin/init.d/your_script # . /etc/rc.config case "$1" in start) start_your_service ;; stop) kill_your_service ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
4. nach welchen kriterien sollte ich die startprioritaet der scripten waehlen? (S20top oder S50top oder vielleicht S100top?)
nur 2-stellige prios. kleinere nummern werden zuerst ausgeführt empfehlung: > 30 für eigene services ...
hintergrundwissen.
lies die neudeutschen hinweise in /sbin/init.d/README bye Karl Esau (parakarl@rup.net) ___ceterum_censeo_Microsoft_esse_delendum -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Karl Esau wrote:
nimm eines der von suse gelieferten skripte als vorlage und ändere es auf deine erfordernisse ab:
da haben wir uns missverstanden. meine praesentierte (unsaubere) loesung war nur zum test gedacht und nicht endgueltig. ich werde das ganze schon in eine fassung mit vernuenftigem script bringen. ich war mir nur nicht sicher ob diese selbstgeschriebenen boot-scripts eventuell in einer datenbank o. aenlichem registriert werden muessen. haett ja sein koennen.
lies die neudeutschen hinweise in /sbin/init.d/README
danke, hatte ich bereits getan - vielleicht nicht eingehend genug. werds mir nochmal reinziehen. gruss, thomas -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Hi, On Sat, Jan 09, 1999 at 19:32 +0100, Thomas Reitelbach wrote:
1. die eigentlichen scripte werden in /sbin/init.d erstellt.
Richtig.
2. die links in den runlevel-verzeichnissen verweisen auf die scripts in /sbin/init.d
Yup.
3. das S im link steht fuer start, das K fuer kill
Stimmt.
4. die zahl hinter dem S bzw. K (S20cron) gibt die startprioritaet bzw. reihenfolge an.
Sie gibt die Start- bzw. Kill-Reihenfolge an. Was eine kleinere Nummer hat, wird eher gestartet/gekillt, was eine größere Nummer hat, später.
5. die hauptscripts in /sbin/init.d sollten die variablen "start" und "stop" verstehen damit man dienste manuell starten/beenden kann
Nein. "start" und "stop" werden dem Script auch beim automatischen Starten/Beenden als Parameter übergeben. Damit weiß das Script, ob es einen Service starten oder beenden soll (wer hätte das gedacht... ;-)
Fragen: 1. wie werden die zahlen in den links von "init" ausgewertet? beispiel: werden die links mit der zahl 1 zeitlich gesehen vor den 20er links ausgefuehrt? Wenn das so ist stellt sich mit die frage "es gibt mehrere links mit der zahl 20, werden die dann alle gleichzeitig gestartet?"
Die Scripte werden nach aufsteigenden Zahlen gestartet (oder ganz genau: nach der alphabetischen Reihenfolge ihrer Namen). Wenn manche Scripte die gleiche Nummer haben, heißt das einfach, daß es egal ist, ob z. B. erst `S20bla' und dann `S20blub' ausgeführt wird oder umgekehrt (tatsächlich wird bla vor blub ausgeführt).
2. ist meine oben beschriebene loesung als "unsauber" auszuwerten? (wenn man von den tatsachen absieht das weder "start"/"stop" von dem script unterstuetzt wird noch ein kill-link in /sbin/init.d/rc2.d vorliegt)
Wenn man davon absieht, eigentlich nicht.
3. ich schaetze meine loesung _ist_ unsauber, wie kann ich das besser regeln?
Start/Stop hinzufügen und den Kill-Link?
4. nach welchen kriterien sollte ich die startprioritaet der scripten waehlen? (S20top oder S50top oder vielleicht S100top?)
Das ist Dir überlassen, die größte schon verwendete Startzahl ist bei mir 30, die kleinste Killzahl 10. Also könnte man, wenn man top zuletzt starten und zuerst beenden will, S35 und K05 nehmen. S100 funktioniert allerdings nicht, da es z. B. vor S20 gestartet würde. Ciao, Stefan -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Danke fuer die Hilfe bei den init-scripten. anscheinend habe ich ja doch keinen fehler gemacht :-) Und vor allem habe ich die Hintergruende jetzt verstanden. kann ja fuer fehlersuche nur hilfreich sein. die start und stop optionen habe ich natuerlich mittlerweile implementiert und der kill-link existiert jetzt auch. alles wunderbar - ich LIEBE linux! gruss, thomas -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
On Sat, 9 Jan 1999, Thomas Reitelbach wrote:
1. die eigentlichen scripte werden in /sbin/init.d erstellt.
ack.
2. die links in den runlevel-verzeichnissen verweisen auf die scripts in /sbin/init.d
ack.
3. das S im link steht fuer start, das K fuer kill
ack.
4. die zahl hinter dem S bzw. K (S20cron) gibt die startprioritaet bzw. reihenfolge an.
ack - mit leichten Einschraenkungen - siehe unten.
5. die hauptscripts in /sbin/init.d sollten die variablen "start" und "stop" verstehen damit man dienste manuell starten/beenden kann
Im Prinzip ja. Die Scripte werden aus einem zentralen Steuerscript mit den Optionen start bzw. stop aufgerufen. Dabei zaehlt einfach die alphabetische Reihenfolge - S20a... startet also vor S20b... usw. Aus dem Namen des Links wird der Name des Scriptes "herausgelesen" (ab dem 4. Zeichen ...) und es wird bei "S..." ge"start"et und bei "K..." ge"stop"t.
2. ist meine oben beschriebene loesung als "unsauber" auszuwerten? (wenn man von den tatsachen absieht das weder "start"/"stop" von dem script unterstuetzt wird noch ein kill-link in /sbin/init.d/rc2.d vorliegt)
IMHO nicht, zumindest dann nicht, wenn Du auch noch einen Link mit "K..." anlegst.
3. ich schaetze meine loesung _ist_ unsauber, wie kann ich das besser regeln?
Siehe Frage 2.
4. nach welchen kriterien sollte ich die startprioritaet der scripten waehlen? (S20top oder S50top oder vielleicht S100top?)
Wenn ein Script Netzfunktionalitaet benoetigt, darf es erst nach dem Start der enstprechenden Netzwerkfunktionen gestartet werden (z.B. nfs-mount erst nach dem Start des nfs-Servers etc.).
bei KirchŽs "network administrators guide" (mein gott, bin grad erst 4 monate dabei und hab mehr gelesen als in den letzten fünf jahren :-). will damit sagen: verweise auf literatur sind willkommen.
Feinfein. Das ist der einzige Weg ... neben dem einfachen Lesen von Scripten, Konfigurationen und Manpages ...
tschuessi und frohes schaffen :-)
Gleichfalls - und Fiel Ervolk, Tschau, Volker. -- Volker Mueller,volker.mueller@gmx.de,<A HREF="http://www.in-berlin.de/user/flinux"><A HREF="http://www.in-berlin.de/user/flinux</A">http://www.in-berlin.de/user/flinux</A</A>> Aus aktuellem Anlass wuensche ich ein gesundes und erfolgreiches Jahr 99 -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Volker Mueller wrote: [ snip ]
alphabetische Reihenfolge - S20a... startet also vor S20b... usw. Aus dem Namen des Links wird der Name des Scriptes "herausgelesen" (ab dem 4. Zeichen ...) und es wird bei "S..." ge"start"et und bei "K..." ge"stop"t.
Bist Du Dir mit dem "herauslesen" sicher? Bei mir wird einfach der Link mit dem Argument "start" oder "stop" aufgerufen. Allerdings sitzte ich auch an einer RH5.1 Installation, vielleicht geht SuSE ja andere Wege. Dann frage ich mich allerdings welchen sittlichen Nährwert das hat. Michael -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
On Sat, 9 Jan 1999, Michael Siefritz wrote: [ /sbin/init.d/... ]
Bist Du Dir mit dem "herauslesen" sicher? Bei mir wird einfach der Link mit dem Argument "start" oder "stop" aufgerufen. Allerdings sitzte ich auch an einer RH5.1 Installation, vielleicht geht SuSE ja andere Wege. Dann frage ich mich allerdings welchen sittlichen Nährwert das hat.
Jetzt wo Du's sagst - muss ich doch mal nachsehen ... Hmmm scheint so, als muesste ich mich korrigieren. Wenn ich mir /etc/inittab und "strings /sbin/init" ansehe, scheint's doch so, als ob die Links direkt mit "start|stop" aufgerufen werden (in Abhaengigkeit von "K" bzw. "S" am Anfang). Vielleicht sollte ich mir mal die Sourcen zu init ansehen. Tschau, Volker -- Volker Mueller,volker.mueller@gmx.de,<A HREF="http://www.in-berlin.de/user/flinux"><A HREF="http://www.in-berlin.de/user/flinux</A">http://www.in-berlin.de/user/flinux</A</A>> Aus aktuellem Anlass wuensche ich ein gesundes und erfolgreiches Jahr 99 -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
On Sat, 9 Jan 1999, Thomas Reitelbach wrote:
[ ... Sys V Boot-Mimik ... ]
1. die eigentlichen scripte werden in /sbin/init.d erstellt. 2. die links in den runlevel-verzeichnissen verweisen auf die scripts in /sbin/init.d
Ja, die Verzeichnisse /sbin/init.d/rc${RUNLEVEL}.d werden abgeklappert und dabei die Scripte aus /sbin/init.d "recycled". Links sind fuer die Konsistenz besser als Kopien: Wenn einer auf den anderen zeigt (oder beide auf einen dritten), sind die Dateien immer die gleichen; Kopien driften beim Editieren zu schnell auseinander ...
3. das S im link steht fuer start, das K fuer kill 4. die zahl hinter dem S bzw. K (S20cron) gibt die startprioritaet bzw. reihenfolge an.
Nicht die Zahl, sondern die lexikographische Ordnung, also genau so wie in der ls-Ausgabe (angenehmer Zufall :).
5. die hauptscripts in /sbin/init.d sollten die variablen "start" und "stop" verstehen damit man dienste manuell starten/beenden kann
Besser ja, weil die Differenz zwischen dem alten und dem neuen Runlevel gebildet wird (beim Booten Wechsel von "Null" (I) auf "Netz" (2) oder "Netz und X" (3); spaeter meist zwischen 2 und 3, zur Administration auch manchmal zwischen 1 und 2 (Netz kurz weg); beim shutdown zur 6 hin). Wer im alten Runlevel (lt 'ls /sbin/init.d/rc${PREV}.d') drin ist, im neuen (lt 'ls /sbin/init.d/rc${NEXT}.d') aber nicht, wird mit '/sbin/init.d/rc${PREV}.d/${SCRIPT} stop' gerufen und soll sein Teil Arbeit rueckgaengig machen und aufraeumen. Wer im neuen Runlevel drin ist aber noch nicht im alten, wird mit Parameter start losgelassen. Das ist effizient und eine tolle Erfindung (darum hat sich SuSE verdientermassen feiern lassen, als sie von /etc/rc-Script zu SysV umgestellt hat :). Es ist leicht erweiterbar und konfigurierbar und sogar -- wenn man das Prinzip einmal drauf hat -- extrem einfach zu ueberblicken. 'rctab' ist Dein Freund dabei, 'ls' tut's aber auch schon.
1. wie werden die zahlen in den links von "init" ausgewertet?
gar nicht, es wird einfach lexikographisch sortiert
4. nach welchen kriterien sollte ich die startprioritaet der scripten waehlen? (S20top oder S50top oder vielleicht S100top?)
Wenn irgendwas voneinander abhaengt, muss die Basis logischerweise vor dem Aufbau starten und der Aufbau vor der Basis stoppen.
will damit sagen: verweise auf literatur sind willkommen.
Versuche Dir bei Interesse /sbin/init.d/rc zu verinnerlichen, das ist nicht sonderlich lang und hat die komplette Logik (oops, die Erstellung der Differenzmenge bezieht nur die ersten drei Zeichen ein, vergleicht also xxxx in $OLD/KNNxxxx und $NEW/SNNxxxx :). Die "Initialzuendung" duerfte von boot und rc0.d kommen. In der Literatur muss irgendwo das Stichwort "System V Bootmimik" auftauchen. Gerhard Sittig -- If you don't understand or are scared by any of the above ask your parents or an adult to help you. -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Kleiner Nachtrag noch: Als Vorlage nimmt man vermutlich "nicht irgendwas, Heinz" (sorry, nicht fuer Dich, hd, sondern Freud'sche Reaktion :), sondern Kinder^H^H^H^H^H^Hskeleton. Und es gibt neben kill noch andere Wege, Dienste zu beenden. kill ist zwar nix Schlimmes, aber bei killall und kurzen oder extrem ueblichen Namen habe ich immer Bauchschmerzen. Und manche Programme bieten einen extra shutdown-Ruf. Bei gpm z.B. empfehle ich einfach ein 'gpm -k' im stop-Zweig. Andernorts ist ------------------------------------------------------- start) echo -n "" > $PIDFILE startewas & echo $! >> $PIDFILE startewas & echo $! >> $PIDFILE startewas & echo $! >> $PIDFILE ;; stop) kill -HUP $( cat $PIDFILE ) rm $PIDFILE ;; ------------------------------------------------------- sinnvoller als z.B. "killall cat tail" (graus!). Gerhard Sittig -- If you don't understand or are scared by any of the above ask your parents or an adult to help you. -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
participants (6)
-
G.Sittig@abo.FreiePresse.DE
-
MSiefritz@surfree.com
-
parakarl@rup.net
-
stefan.troeger@wirtschaft.tu-chemnitz.de
-
tr@work.base.net
-
volker.mueller@gmx.de