automatisches starten des ntpd

mobo

New Member
Hallo,

ich habe gerande meinen ersten OpenBSD Server aufgesetzt. Ging soweit gangz gut bis auf den ntpd. Es ist ein OpenBSD 3.6 und ein ntpd-4.2.0a. Leider starter der Daemon nicht automatisch, folgende Konfiguration liegt vor:

ntp.conf:
# Keep it rather quiet
logfile /var/log/ntpd.log
logconfig =all
#logconfig =syncevents + peerevents +sysevents +allclock
#logconfig =syncevents +allclock
# Drift file. Put this in a directory which the daemon can write to.
driftfile /etc/ntp/drift
#NTP servers
server ptbtime1.ptb.de version 3
server ptbtime2.ptb.de version 3

rc.conf.local:
ntpd_flags="" # for normal use: ""
ntpdate_flags="192.53.103.103"
ntpd="YES" # run ntpd if it exists

Laut den man pages sollte es eigentlich so gehen, aber ps ax zeigt keinen entsprechenden Prozess an. Starte ich den ntpd von hand ist alles in Butter.


Gruß
Matthias
 
OpenBSD 3.6 + ntpd

Mit dem Release von OpenBSD 3.6 hat sich der ,startup'-Code für Nicht-OpenNTPDs geändert, da dieser natürlich gegenüber den anderen einen höheren Stellenwert hat.
Die Vorgehensweise, die du aufgelistet hast, war vermutlich für OpenBSD 3.5 oder früher, da diese Versionen noch den alten ,startup'-Code genutzt haben.

Du hast jetzt natürlich zwei einfach zu realisierende Möglichkeiten:
- Wechsel auf OpenNTPD (http://www.openntpd.org/de/)
- Oder das Verwenden des alten ntpd-,startup'-Codes

Da die Installation von OpenNTPD nicht das Problem darstellen würde, bzw. du sowieso dich erst einmal mit dem OpenNTPD auseinandersetzen solltest, beschreibe ich hier den Wechsel des ,startup'-Codes.

Speicher zunächst diesen Code in einer Datei ab (zum Beispiel rc.local.diff):
Code:
--- rc.local    Fri Jan  7 14:33:28 2005
+++ rc.local~   Fri Jan  7 14:34:56 2005
@@ -10,6 +10,23 @@

 echo -n 'starting local daemons:'

+# run ntpdate prior to ntpd
+if [ $securelevel -le 1 -a X"${ntpdate_flags}" != X"NO" \
+    -a -x /usr/local/sbin/ntpdate ]; then
+       echo -n ' ntpdate'
+       /usr/local/sbin/ntpdate -b ${ntpdate_flags} >/dev/null
+fi
+
+if [ X"${ntpd}" == X"YES" -a -x /usr/local/sbin/ntpd \
+    -a -e /etc/ntp.conf ]; then
+       ntpd_flags="-p /var/run/ntpd.pid"
+       if [ $securelevel -ge 1 ]; then
+               ntpd_flags="${ntpd_flags} -x"
+       fi
+       echo -n ' ntpd';       /usr/local/sbin/ntpd ${ntpd_flags}
+fi
+
+
 if [ -x /usr/local/sbin/cfsd ]; then
        if ps auxc | grep -q '^ *root .* mountd$'; then
                echo -n ' cfsd';        /usr/local/sbin/cfsd >/dev/null 2>&1

Und diesen hier ebenfalls (zum Beispiel rc.diff):
Code:
--- rc~ Fri Jan  7 14:33:15 2005
+++ rc  Fri Jan  7 14:33:06 2005
@@ -299,7 +299,7 @@
            -a ${amd_dir} `cat ${amd_master}` > /var/run/amd.pid )
 fi

-# run rdate before timed/ntpd
+# run rdate before timed
 if [ X"${rdate_flags}" != X"NO" ]; then
        echo -n ' rdate';       rdate -s ${rdate_flags}
 fi
@@ -308,10 +308,6 @@
 # if $timed_flags == NO, timed isn't run.
 if [ "X${timed_flags}" != X"NO" ]; then
        echo -n ' timed'; timed $timed_flags
-fi
-
-if [ "X${ntpd_flags}" != X"NO" ]; then
-       echo -n ' ntpd'; ntpd $ntpd_flags
 fi
 echo '.'

Dies sind die Änderungen, die für die ntpds relevant sind
(Quellen: http://www.openbsd.org/cgi-bin/cvsweb/src/etc/rc.diff?r1=1.248&r2=1.249&f=h und http://www.openbsd.org/cgi-bin/cvsweb/src/etc/rc.local.diff?r1=1.35&r2=1.36&f=h)

Patche dann deine bestehende /etc/rc und die /etc/rc.local, aber mach vorher ein Backup. Diese Befehle als root ausführen (nur so nebenbei :) )
Code:
# cd /etc
# cp rc rc~
# cp rc.local rc.local~
# patch -p0 < /pfad/zu/der/rc.local.diff
# patch -p0 < /pfad/zu/der/rc.diff

Damit hast du dann den alten ,startup'-Code...
Wenn du diesen Weg eingeschlagen hast, empfehle ich trotzdem, dass du dir mal OpenNTPD ansiehst. :)

Ich hoffe, das hat dir soweit geholfen.
 
Back
Top