Hallo Zusammen, kann man die Startreihenfolge der Damons bei Booten eigentlich ändern, wenn ja wie ? Gruß Michael -- Phone/Fax +49 7000 MACBYTE (+49 7000-6222983) // Registered Linux User #228306 Home http://www.macbyte-computing.de/ PGP-Key http://www.macbyte-computing.de/shared/mykey.pkr ++ CGI-Hosting ++ Domains ++ Webspace ++ PHP Development ++
On Friday 07 September 2001 03:41, you wrote:
Hallo Zusammen,
kann man die Startreihenfolge der Damons bei Booten eigentlich ändern, wenn ja wie ?
Gruß Michael
ja, kann man und zwar in der /etc/init.d/ da sind in den ordnern(rc3.d , rc5.d usw. )die runlevel! @S01 heisst soveil wie als erstes starten und mit @K01 wird das entsprechende script gekilled. wenn du also @S01 auf @S05 setzt, wird das script an fuenfter stelle ausgefuehrt. Gruss Andre
On 7 Sep 2001, at 5:35, Andre Pfeiler wrote:
On Friday 07 September 2001 03:41, you wrote:
Hallo Zusammen,
kann man die Startreihenfolge der Damons bei Booten eigentlich ändern, wenn ja wie ?
Gruß Michael
ja, kann man und zwar in der /etc/init.d/ da sind in den ordnern(rc3.d , rc5.d usw. )die runlevel! @S01 heisst soveil wie als erstes starten und mit @K01 wird das entsprechende script gekilled. wenn du also @S01 auf @S05 setzt, wird das script an fuenfter stelle ausgefuehrt.
fast richtig. Richtig ist, das die Skripte in aufsteigender Reihenfolge der Startnummerierung abgearbeitet werden. Es ist jedoch möglich (und durchaus auch üblich) mehrere Skripte mit der gleichen Nummer zu starten. Das heißt, das du z.B. 3 Sripte mit Sxx haben kannst (bei mir z.B.dreimal S01, dreimal S08, ...). Ein Skript S05xx wird nicht als fünftes, sondern nach den Skripten in S01-S04 ausgeführt. Das können auch dreißig Stück sein! Ich bin mir allerdings nicht sicher, ob bei gleichen Startlevel (z.B. S01) die Skripte nach dem Alphabet gestartet werden. Die entsprechende Zeile in /etc/rc.d/rc lautet (SuSE7.0): for i in S[0-9][0-9]*; do ... (eigentlich: for i in $runrc/S${rex}*; do...) Die Skripte werden in der Reihenfolge ausgeführt, in der sie an "for" übergeben werden. Andreas
* Andreas Kyek schrieb am 07.Sep.2001:
Ich bin mir allerdings nicht sicher, ob bei gleichen Startlevel (z.B. S01) die Skripte nach dem Alphabet gestartet werden. Die entsprechende Zeile in /etc/rc.d/rc lautet (SuSE7.0):
for i in S[0-9][0-9]*; do ... (eigentlich: for i in $runrc/S${rex}*; do...)
Die Skripte werden in der Reihenfolge ausgeführt, in der sie an "for" übergeben werden.
Und die ist alphabetisch. Besser gesagt in der ASCII-Reihenfolge. Das gilt auch für die Zahlen. Aber da nur Links ausgewählt werden wo an erster Stelle ein S und an zweiter und dritter eine Zahl steht, so ist hier nummerisch gleich alphabetisch. Wenn man allerdings dreistellige Zahlen hat, so sähe das ganz anders aus. Bernd -- Alle meine Signaturen sind rein zufällig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es wäre nett, wenn Du mich benachrichtigen würdest. |Zufallssignatur 0
Am Fri, 07 Sep 2001 schrieb Bernd Brodesser:
Ich bin mir allerdings nicht sicher, ob bei gleichen Startlevel (z.B. S01) die Skripte nach dem Alphabet gestartet werden. Die entsprechende Zeile in /etc/rc.d/rc lautet (SuSE7.0):
for i in S[0-9][0-9]*; do ... (eigentlich: for i in $runrc/S${rex}*; do...)
Die Skripte werden in der Reihenfolge ausgeführt, in der sie an "for" übergeben werden.
Und die ist alphabetisch. Besser gesagt in der ASCII-Reihenfolge.
Hmm ist in diesem Fall sicher korrekt, aber darauf würde ich mich nicht verlassen. Ich hab jetzt kein entsprechendes Standard-Dokument gelesen, aber ich könnte mir vorstellen, daß die Reihenfolge durch die Zahlen gegeben und die Reihenfolge für Links mit identischen Zahlen ganz einfach "undefined" ist. Das hieße, daß eine andere Distri oder ein anderer SysV-Init diese Skripte dann durchaus auch parallel ausführen könnte. -- Erhard Schwenk http://www.fto.de http://www.akkordeonjugend.de
Am Freitag, 7. September 2001 11:33 schrieb Erhard Schwenk:
Am Fri, 07 Sep 2001 schrieb Bernd Brodesser:
Die Skripte werden in der Reihenfolge ausgeführt, in der sie an "for" übergeben werden.
Und die ist alphabetisch. Besser gesagt in der ASCII-Reihenfolge.
Hmm ist in diesem Fall sicher korrekt, aber darauf würde ich mich nicht verlassen. Ich hab jetzt kein entsprechendes Standard-Dokument gelesen, aber ich könnte mir vorstellen, daß die Reihenfolge durch die Zahlen gegeben und die Reihenfolge für Links mit identischen Zahlen ganz einfach "undefined" ist. Das hieße, daß eine andere Distri oder ein anderer SysV-Init diese Skripte dann durchaus auch parallel ausführen könnte.
Das hiesse dann aber, dass das Verhalten ein und der selben Shell unter verschiedenen Systemen "undefined" ist. Heiner -- Heiner Lamprecht Philosophenweg 79 D - 72076 Tuebingen Fon: +49-7071-600 162 Fax: +49-7071-600 164 heiner@kflog.de GnuPG - Key: E05AEAFC Fingerprint: 257A DFBF 4977 4585 77A0 3509 973B 92AA E05A EAFC
On 7 Sep 2001, at 17:36, Heiner Lamprecht wrote:
Am Freitag, 7. September 2001 11:33 schrieb Erhard Schwenk:
Am Fri, 07 Sep 2001 schrieb Bernd Brodesser:
Die Skripte werden in der Reihenfolge ausgeführt, in der sie an "for" übergeben werden.
Und die ist alphabetisch. Besser gesagt in der ASCII-Reihenfolge.
Hmm ist in diesem Fall sicher korrekt, aber darauf würde ich mich nicht verlassen. Ich hab jetzt kein entsprechendes Standard-Dokument gelesen, aber ich könnte mir vorstellen, daß die Reihenfolge durch die Zahlen gegeben und die Reihenfolge für Links mit identischen Zahlen ganz einfach "undefined" ist. Das hieße, daß eine andere Distri oder ein anderer SysV-Init diese Skripte dann durchaus auch parallel ausführen könnte.
Das hiesse dann aber, dass das Verhalten ein und der selben Shell unter verschiedenen Systemen "undefined" ist.
Wieso? Ich denke, die Init-Skripte werden überall unter /xx/sh laufen. (Ich habe es gerade auf einer Sun Ultra Enterprise 10000 mit SunOS 5.6 überprüft). Ich denke, was Erhard meint ist: Wo steht geschrieben, das die Reihenfolge zwingend so ist? Vielleicht ist offiziell das einzige die Reihenfolge steuernde Element das Sxx (sprich: die Zahl) und der Rest des Namens ist für die Reihenfolge nicht wichtig. Das würde dann bedeuten, das man sich (ausgehend von diesem Standard) nicht zwingend auf eine lexikografische Reihenfolge verlassen kann, sondern das innerhalb einer Zahl eine beliebige Reihenfolge denkbar ist. Die Implementation mittels einer Schleife "for f in /etc/rc3.d/S*" (aus /sbin/rc3 der Sun) führt die Skripte S* alle in lexikografischer Reihenfolge aus. Das kann doch aber auch Zufall sein, oder? Ich habe gerade mal man bsh/sh kurz angelesen. Da find ich nix davon, das die Reihenfolge so sein muß. for name [ in word ... ] do list done Each time a for command is executed, name is set to the next word taken from the in word list. If in word ... is omitted, then the for command executes the do list once for each positional parameter that is set (see Parameter Substitution section below). Execution ends when there are no more words in the list. Gut, die sh verhält sich so und es funktioniert wohl auch, aber wo steht das? Adreas
Am Freitag, 7. September 2001 17:52 schrieb Andreas Kyek:
On 7 Sep 2001, at 17:36, Heiner Lamprecht wrote:
Das hiesse dann aber, dass das Verhalten ein und der selben Shell unter verschiedenen Systemen "undefined" ist.
Ich denke, was Erhard meint ist: Wo steht geschrieben, das die Reihenfolge zwingend so ist?
Wie interpretiert die Shell die Namen der Links, oder von beliebigen Elementen irgendeiner Liste? Als Zeichenfolgen, nicht direkt als Zahlen. Sprich, es ist ein Unterschied zwischen der Zahl "1" und dem ASCII-Zeichen "1" (Code-Nr.:49). Du siehst am Anfang der Link-Namen eine Zahl und bist daher in der Lage, die Links in eine für Dich sinnvolle Reihenfolge zu bringen. Der Computer sieht die Namen als beliebige Zeichenfolge und verarbeitet sie dementsprechend einer bestimmten Zeichentabenne, in der jedes Zeichen eine bestimmte Position hat. Glücklicherweise wurde diese ASCII-Tabelle so angelegt, dass der Computer zum gleichen Ergebnis kommt wie Du ;-)) Du kannst das Ganze auch anders angehen: Ändere mal den Namen von /etc/rc.d/rc3.c/S05network in /etc/rc.d/rc3.c/S5network um. Die Indexzahl ist die gleiche. Aber wann wird das Netzwerk jetzt gestartet? Heiner -- Heiner Lamprecht Philosophenweg 79 D - 72076 Tuebingen Fon: +49-7071-600 162 Fax: +49-7071-600 164 heiner@kflog.de GnuPG - Key: E05AEAFC Fingerprint: 257A DFBF 4977 4585 77A0 3509 973B 92AA E05A EAFC
On Fre, 07 Sep 2001, Andreas Kyek wrote:
Die Implementation mittels einer Schleife "for f in /etc/rc3.d/S*" (aus /sbin/rc3 der Sun) führt die Skripte S* alle in lexikografischer Reihenfolge aus. Das kann doch aber auch Zufall sein, oder? Ich habe gerade mal man bsh/sh kurz angelesen. Da find ich nix davon, das die Reihenfolge so sein muß.
for name [ in word ... ] do list done
Die Reihenfolge haengt davon ab, wie die shell den * expandiert und an die for-Schleife uebergibt... Die Sortierung wird von LC_COLLATE (bzw. LANG wenn LC_COLLATE nicht gesetzt ist) bestimmt. Im Zweifelsfall kann man die Schleife als: LC_COLLATE="POSIX" for name in ... schreiben. So sollte sich dann auf allen POSIX-konformen Systemen die gleiche Reihenfolge ergeben. -dnh -- 167: DAU Leute, die sich beim Falschparken selbst anzeigen. (Dietz Proepper)
* David Haller schrieb am 07.Sep.2001:
On Fre, 07 Sep 2001, Andreas Kyek wrote:
Die Implementation mittels einer Schleife "for f in /etc/rc3.d/S*" (aus /sbin/rc3 der Sun) führt die Skripte S* alle in lexikografischer Reihenfolge aus. Das kann doch aber auch Zufall sein, oder? Ich habe gerade mal man bsh/sh kurz angelesen. Da find ich nix davon, das die Reihenfolge so sein muß.
for name [ in word ... ] do list done
Die Reihenfolge haengt davon ab, wie die shell den * expandiert und an die for-Schleife uebergibt...
So ist es.
Die Sortierung wird von LC_COLLATE (bzw. LANG wenn LC_COLLATE nicht gesetzt ist) bestimmt.
bzw. LC_ALL wenn es gesetzt ist, das geht noch vor LC_COLLATE. LC_ALL ist im Normalfall besser nicht gesetzt.
Im Zweifelsfall kann man die Schleife als:
LC_COLLATE="POSIX" for name in ...
schreiben. So sollte sich dann auf allen POSIX-konformen Systemen die gleiche Reihenfolge ergeben.
Alles Richtig. Nur, und da hat Erhard recht, wo steht geschrieben, daß die Abarbeitung der Startskripte über eine solche for-Schleife zu erfolgen hat? Es kann doch jeder Provider dies anders machen. Wenn er eine for-Schleife so wie oben angegeben, benutzt, dann wird es so sein, aber es könnte ja auch anders gelöst werden. Ich wüßte auch nicht, daß es zwingend ein Skript sein muß. Vielleicht nimmt ein anderer Provider ein C, C++ oder Java-Programm und führt über ein fork mehere Skripte gleichzeitig aus. Bernd -- Bitte die Etikette beachten: http://home.t-online.de/~f.walle/etikette.html Bitte Realnamen angeben, kein Vollquoting, kein Html, PGP oder Visitenkarten benutzen. Signatur mit "-- " abtrennen, bei Antworten "Re: " voranstellen, sonst nichts. |Zufallssignatur 4
Hallo, at Friday 07.09.2001 (08:10 +0200), Andreas Kyek wrote:
Ich bin mir allerdings nicht sicher, ob bei gleichen Startlevel (z.B. S01) die Skripte nach dem Alphabet gestartet werden. Die entsprechende Zeile in /etc/rc.d/rc lautet (SuSE7.0):
Ich habe es ausprobiert und bei mir werden die Dienste (S80adsl und S80ddclient) im selbem Level alphabetisch gestartet. (RedHat 7.0). ;-) Das Problem war, das ddclient zuerst gestartet wurde und dann ADSL. ddclient updatet die dynamische IP, konnte es aber nicht da beim Booten keine Verbindung bestand. Ich war mir nur sicher, ob man bei dieser Startgeschichte einfach so rumfuhrwerken darf. Ich denke mir mal, das man bei einigen Damons die Startreihenfolge nicht so ohne weiteres ändern darf, da man sonst wohl ein Chaos auslösen würde. Gruß Michael -- Phone/Fax +49 7000 MACBYTE (+49 7000-6222983) // Registered Linux User #228306 Home http://www.macbyte-computing.de/ PGP-Key http://www.macbyte-computing.de/shared/mykey.pkr ++ CGI-Hosting ++ Domains ++ Webspace ++ PHP Development ++
participants (7)
-
Andre Pfeiler
-
Andreas Kyek
-
B.Brodesser@t-online.de
-
David Haller
-
Erhard Schwenk
-
Heiner Lamprecht
-
Michael Raab