Uhrzeit beim Start setzen
Hallo Jungs! Ich würde gerne bei jedem Startup die Uhrzeit mit ntpdate x.y.z.a setzen. Tja, die Frage ist - wie erklär ichs meiner SuSE? einfach einen one-liner in /etc/init.d legen und in den rc.x-Ordnern verlinken? Oder gibts bessere Möglichkeiten (ich will ja schließlich keinen Dienst starten...) Dank und Gruß Christoph
* Christoph Bohm schrieb am 08.Aug.2003:
Ich würde gerne bei jedem Startup die Uhrzeit mit ntpdate x.y.z.a setzen. Tja, die Frage ist - wie erklär ichs meiner SuSE? einfach einen one-liner in /etc/init.d legen und in den rc.x-Ordnern verlinken? Oder gibts bessere Möglichkeiten (ich will ja schließlich keinen Dienst starten...)
Klar startest Du einen Dienst, auch wenn der nur die Uhr stellt und sich dann gleich wieder beendet. Wie solltest Du es auch sonst machen, Du mußt doch garantieren, daß Dein Rechner am Netzwerk angeschlossen ist, sonst kannst Du ja kein ntpdate machen. Was ist, wenn Du z.B im Singelusermode hochfährst? Da gibt es kein Netzwerk, und ein ntpdate stört da nur gewaltig. Das kannst Du in einer Situation, in der Du im Singelusermode hochfährst sicher nicht gebrauchen. Also ist es besser, wenn Du es so machst wie Du selber gesagt hast. Allerdings solltest Du /etc/init.d/skeleton kopieren, den Block ### BEGIN INIT INFO # Provides: FOO # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start FOO to allow XY and provide YZ. ### END INIT INFO Entsprechend anpassen, Hier und im ganzen Skript FOO durch den richtigen Namen ersetzen und anschließend das Programm, dessen Name ich vergessen habe *verlegengrins* aber hier hoffentlich genannt wird aufrufen, damit die Links richtig angelegt werden. Bernd
Bernd Brodesser schrieb:
* Christoph Bohm schrieb am 08.Aug.2003:
Ich würde gerne bei jedem Startup die Uhrzeit mit ntpdate x.y.z.a setzen. Tja, die Frage ist - wie erklär ichs meiner SuSE? einfach einen one-liner in /etc/init.d legen und in den rc.x-Ordnern verlinken? Oder gibts bessere Möglichkeiten (ich will ja schließlich keinen Dienst starten...)
Klar startest Du einen Dienst, auch wenn der nur die Uhr stellt und sich dann gleich wieder beendet.
Allerdings solltest Du /etc/init.d/skeleton kopieren, den Block
### BEGIN INIT INFO # Provides: FOO # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start FOO to allow XY and provide YZ. ### END INIT INFO
Entsprechend anpassen, Hier und im ganzen Skript FOO durch den richtigen Namen ersetzen und anschließend das Programm, dessen Name ich vergessen habe *verlegengrins* aber hier hoffentlich genannt wird aufrufen, damit die Links richtig angelegt werden.
Bernd
Hallo Bernd! Vielen Dank. Entschuldige, daß ich mich erst jetzt zurückmelde, aber ich war am WE außer haus. mit dem Programm, dessen Namen Du vergessen hast, meinst Du Yast? Tja, darin sehe ich für mich auch die einzige Möglichkeit, die Start- und Stoplinks zu setzen. Die Nummerierung geht doch etwas über mein Logikverständnis hinaus :) Aber das wäre ja mal eine interessante Anschlußfrage: Wer weiß, nach welchen Kriterien man die Start/Stoplinks nummerieren sollte? Ich meine, es ist ja logisch, daß sowas wie ein MTA erst nach Netzwerk kommen sollte und ggf. vorher gestoppt wird, aber zB mein ntpdate - vor oder nach MTA? Und nach welchen Kriterien mag Yast entscheiden? Any Suggestions? Herzliche Grüße, Christoph
Christoph Bohm wrote:
Ich würde gerne bei jedem Startup die Uhrzeit mit ntpdate x.y.z.a setzen. Tja, die Frage ist - wie erklär ichs meiner SuSE? einfach einen one-liner in /etc/init.d legen und in den rc.x-Ordnern verlinken? Oder gibts bessere Möglichkeiten (ich will ja schließlich keinen Dienst starten...)
Klar startest Du einen Dienst, auch wenn der nur die Uhr stellt und sich dann gleich wieder beendet.
Allerdings solltest Du /etc/init.d/skeleton kopieren, den Block ### BEGIN INIT INFO # Provides: FOO # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start FOO to allow XY and provide YZ. ### END INIT INFO
Entsprechend anpassen, Hier und im ganzen Skript FOO durch den richtigen Namen ersetzen und anschließend das Programm, dessen Name ich vergessen habe *verlegengrins* aber hier hoffentlich genannt wird aufrufen, damit die Links richtig angelegt werden.
Bernd
Hallo Bernd!
Vielen Dank. Entschuldige, daß ich mich erst jetzt zurückmelde, aber ich war am WE außer haus.
mit dem Programm, dessen Namen Du vergessen hast, meinst Du Yast? Tja,
Erinnert mich stark an "Du-weisst-schon-wen" ;-) Nein, er meinte "insserv". Wenn Du so ein Script eingerichtet hast, beachte den Header "Required-Start:" dort trägst Du z.B. $network ein. Für ein genaues Beispiel schau Dir am besten einfach mal die anderen Scripte an. Oder den Aufruf ganz unten. Wenn dieses Script fertig ist, machst Du # insserv scriptname (Oder Alternativ mit "Du-weisst-schon-was" (Runlevel-Editor@Yast) ;-)) Und er setzt die Links in den entsprechenden Unterverzeichnissen automatisch.
darin sehe ich für mich auch die einzige Möglichkeit, die Start- und Stoplinks zu setzen. Die Nummerierung geht doch etwas über mein Logikverständnis hinaus :)
Kleine Zahlen zuerst und dann in der Reihenfolge wie es gestartet werden soll. Wenn Netzwerk 10 ist und Du nach dem Netzwerk starten möchtest, dann halt 11 oder ähnliches. Vielleicht was freihalten für die Zukunft.
Aber das wäre ja mal eine interessante Anschlußfrage: Wer weiß, nach welchen Kriterien man die Start/Stoplinks nummerieren sollte? Ich meine, es ist ja logisch, daß sowas wie ein MTA erst nach Netzwerk kommen sollte und ggf. vorher gestoppt wird, aber zB mein ntpdate - vor oder nach MTA? Und nach welchen Kriterien mag Yast entscheiden?
Yast liest wie insserv (IMHO wird das sogar von Yast gestartet) den Header aus. Mach mal ein # chkconfig --deps -l Dann kannst Du schön tabellarisch sehen was von was abhängt. -- Gruß, Andreas
Hallo! Vielen Dank für die hilfreiche Antwort! Man lernt ja nie aus... Mit Startskripten schlage ich mich jetzt das erste mal herum. Außer der grauen Theorie wußte ich auch nicht viel darüber. Andreas Winkelmann schrieb:
Christoph Bohm wrote:
Nein, er meinte "insserv". Wenn Du so ein Script eingerichtet hast, beachte den Header "Required-Start:" dort trägst Du z.B. $network ein. Für ein genaues Beispiel schau Dir am besten einfach mal die anderen Scripte an. Oder den Aufruf ganz unten. Wenn dieses Script fertig ist, machst Du
# insserv scriptname
(Oder Alternativ mit "Du-weisst-schon-was" (Runlevel-Editor@Yast) ;-))
Und er setzt die Links in den entsprechenden Unterverzeichnissen automatisch.
darin sehe ich für mich auch die einzige Möglichkeit, die Start- und Stoplinks zu setzen. Die Nummerierung geht doch etwas über mein Logikverständnis hinaus :)
Kleine Zahlen zuerst und dann in der Reihenfolge wie es gestartet werden soll. Wenn Netzwerk 10 ist und Du nach dem Netzwerk starten möchtest, dann halt 11 oder ähnliches. Vielleicht was freihalten für die Zukunft.
Ja und genau hier hänge ich. Wenn ich die Links per pedes (oder eher per manum) erstelle, dann weiß ich zwar, in welcher Reihenfolge die gestartet werden, aber die bestehenden haben eben diese "Zwischenräume", und bevor ich hier etwas falsch mache... Aber mit insserv scheint das ja erledigt zu sein - ich werd mich mal genauer damit befassen :) Vielleicht gleich etwas, das mir direkt zu Beginn ins Auge fällt: die Required-Start-Zeile beinhaltet lauter Variablen? Also $network, $remote_fs, $syslog etc. Woher bekomme ich eine Liste dieser Variablen und Ihrer Bedeutung? Ich meine, die Namen sind ja sprechend genug, aber wenn ich zB mysql benötigen würde, weil ich einen DB-Dump machen möchte. Wie würde ich es meinem init-Skript mitteilen? Entschuldigt bitte, falls dies eine dämliche Frage ist, aber ich stehe im Moment wirklich ziemlich ratlos davor.
Yast liest wie insserv (IMHO wird das sogar von Yast gestartet) den Header aus.
Mach mal ein
# chkconfig --deps -l
Dann kannst Du schön tabellarisch sehen was von was abhängt.
und wieder was dazugelernt :) Vielen Dank! Gruß Christoph
Christoph Bohm wrote:
Kleine Zahlen zuerst und dann in der Reihenfolge wie es gestartet werden soll. Wenn Netzwerk 10 ist und Du nach dem Netzwerk starten möchtest, dann halt 11 oder ähnliches. Vielleicht was freihalten für die Zukunft.
Ja und genau hier hänge ich. Wenn ich die Links per pedes (oder eher per manum) erstelle, dann weiß ich zwar, in welcher Reihenfolge die gestartet werden, aber die bestehenden haben eben diese "Zwischenräume", und bevor ich hier etwas falsch mache... Aber mit insserv scheint das ja erledigt zu sein - ich werd mich mal genauer damit befassen :)
Hmm, das System bietet dir diese insserv-methodik an, nimm sie. Die Links manuell zu erstellen funktioniert zwar, ist aber eine eklige Arbeit. Vor allem wenn Du so ein script mal eben deaktivieren willst, das ist was für Leute die Vater und Mutter erschlagen haben. Ein # insserv -r script bzw. # insserv script Ist da irgendwie netter ;-) Und bietet auch Vorteile, wenn Du auf einen anderen Rechner umziehen willst, o.ä..
Vielleicht gleich etwas, das mir direkt zu Beginn ins Auge fällt: die Required-Start-Zeile beinhaltet lauter Variablen? Also $network, $remote_fs, $syslog etc. Woher bekomme ich eine Liste dieser Variablen und Ihrer Bedeutung? Ich meine, die Namen sind ja sprechend genug, aber wenn ich zB mysql benötigen würde, weil ich einen DB-Dump machen möchte. Wie würde ich es meinem init-Skript mitteilen? Entschuldigt bitte, falls dies eine dämliche Frage ist, aber ich stehe im Moment wirklich ziemlich ratlos davor.
Das wäre ein Job für Mr. man ;-) # man insserv würde Dir sagen, dass es da eine config-datei namens /etc/insserv.conf gibt, wo diese definiert werden.
Yast liest wie insserv (IMHO wird das sogar von Yast gestartet) den Header aus.
Mach mal ein
# chkconfig --deps -l
Dann kannst Du schön tabellarisch sehen was von was abhängt.
und wieder was dazugelernt :)
-- Gruß, Andreas
* Andreas Winkelmann schrieb am 11.Aug.2003:
Christoph Bohm wrote:
Das nächsthöher gequotete habe ich geschrieben.
Entsprechend anpassen, Hier und im ganzen Skript FOO durch den richtigen Namen ersetzen und anschließend das Programm, dessen Name ich vergessen habe *verlegengrins* aber hier hoffentlich genannt wird aufrufen, damit die Links richtig angelegt werden.
mit dem Programm, dessen Namen Du vergessen hast, meinst Du Yast? Tja,
Nein. Weiß nicht, ob es mit yast jetzt geht. Ich habe SuSE 7.2 und kann zu SuSE 8.x und deren yast nichts sagen.
Erinnert mich stark an "Du-weisst-schon-wen" ;-)
Ja. ;)
Nein, er meinte "insserv".
Genau das. Ich habe es in keiner man-page gefunden. (Sag jetzt nicht man insserv ;))
Wenn Du so ein Script eingerichtet hast, beachte den Header "Required-Start:" dort trägst Du z.B. $network ein. Für ein genaues Beispiel schau Dir am besten einfach mal die anderen Scripte an. Oder den Aufruf ganz unten. Wenn dieses Script fertig ist, machst Du
# insserv scriptname
ACK
Und er setzt die Links in den entsprechenden Unterverzeichnissen automatisch.
So ist es.
darin sehe ich für mich auch die einzige Möglichkeit, die Start- und Stoplinks zu setzen. Die Nummerierung geht doch etwas über mein Logikverständnis hinaus :)
Bitte nicht selber setzen, da es sonst bei Gelegenheit wieder umgesetzt wird, nämlich jedesmal, wenn insserv gestartet wird. insserv setzt die Nummern selber.
Kleine Zahlen zuerst und dann in der Reihenfolge wie es gestartet werden soll. Wenn Netzwerk 10 ist und Du nach dem Netzwerk starten möchtest, dann halt 11 oder ähnliches. Vielleicht was freihalten für die Zukunft.
Das gilt für die Startskripte, die mit S beginnen. Und dann einfach die alphabetische Reihenfolge. Da die Zahlen immer zweistellig angegeben werden, also etwa 01 und nicht einfach 1, stimmt es mit der numerischen Reihenfolge überein. Die Stoppskripte beginnen mit einem K und werden ausgeführt, wenn ein Runlevel verlassen wird.
Aber das wäre ja mal eine interessante Anschlußfrage: Wer weiß, nach welchen Kriterien man die Start/Stoplinks nummerieren sollte? Ich meine, es ist ja logisch, daß sowas wie ein MTA erst nach Netzwerk kommen sollte und ggf. vorher gestoppt wird, aber zB mein ntpdate - vor oder nach MTA? Und nach welchen Kriterien mag Yast entscheiden?
Yast liest wie insserv (IMHO wird das sogar von Yast gestartet) den Header aus.
yast ruft lediglich insserv auf. Es ist insserv, der die Arbeit macht. Und insserv ließt folgenden Kommentar aus: ### BEGIN INIT INFO # Provides: FOO # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start FOO to allow XY and provide YZ. ### END INIT INFO Für das Skript selber, das von der bash ausgewertet wird, ist es nichts als ein Kommentar. Aber insserv wertet dies aus und gibt im obigen Beispiel FOO eine höhere Zahl als die Startskripte, die sich hinter $remote_fs und $syslog verbergen. Welche ist dabei egal, hauptsache höher. Wenn ein anderes Skript etwa bar von foo abhängt, so bekommt bar eine noch höhere Nummer. Bernd
Bernd Brodesser schrieb: [... Erklärungen zum Runlevelkonzept ...] Herzlichen Dank an alle für die umfassenden und wirklich hilfreichen Informationen!!! Ich bin begeistert von Euch :-) ! Gruß Christoph
Christoph Bohm wrote:
Ich würde gerne bei jedem Startup die Uhrzeit mit ntpdate x.y.z.a setzen. Tja, die Frage ist - wie erklär ichs meiner SuSE? einfach einen one-liner in /etc/init.d legen und in den rc.x-Ordnern verlinken? Oder gibts bessere Möglichkeiten (ich will ja schließlich keinen Dienst starten...)
Hi, meine Lösung: xntp installieren (Packet xntp), deinen bevorzugten runlevel Editor starten, xntp in runlevels 3 und 5 eintragen. /etc/sysconfig/xntp prüfen, dort sollte stehen dass xntp auch für normale user läuft. In /etc/ntp.conf ein oder mehrere server angeben. Mit "ntpdate ntp1.ptb.de" prüfen ob alles funktioniert (xntp davor beenden, sonst port belegt). In /var/log/ntp.log kannst Du überprüfen was sich so tut. Gruß Jean-Marc -- ------------------------------------------------------------- The bigger the theory the better. ------------------------------------------------------------- Jean-Marc Autexier SYBORG Informationssysteme b.H OHG <a href="http://www.autexier.de">www.autexier.de</a>
participants (5)
-
Andreas Winkelmann
-
B.Brodesser@t-online.de
-
Bernd Schwendele
-
Christoph Bohm
-
Jean-Marc Autexier