PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SuSe 10.0 - Runlevel script startet nur manuell!



matthias-muc
21.08.07, 14:10
Hallo beisammen,

ich habe hier ein Runlevel Script für Postgrey, das mich ziemlich fertig macht. Ich habe es in /etc/init.d kopiert und Symlinks in /etc/init.d/rc3.d sowie /etc/init.d/rc5.d angelegt (S97postgrey).

Das script funktioniert zwar manuell toll (/etc/init.d/postgrey start), aber nach einem Neustart des Servers läuft Postgrey nicht. Jetzt kommt der Knaller: Nach einem Wechsel des Runlevels zu 2 und dann zurück zu 3 läuft Postgrey! So falsch kann meine Config dann ja wohl nicht sein... :confused:

Hat jemand eine Idee, wie ich debuggen kann, warum Postgrey direkt beim Booten nicht erfolgreich gestartet wird? Mein Verdacht ist entweder irgend eine nicht erfüllte Abhängigkeit (Postfix, Perl??) oder ein Fehler im Script...

Hier daher mal noch das Script:



#! /bin/sh
#
# Author: james at p800.info, based on template from source package
# Download from http://www.huschi.net/21_239_de.html
# updates from http://www.michinator.de
#
# /etc/init.d/postgrey
# and its symbolic link
# /usr/sbin/rcpostgrey
#
### BEGIN INIT INFO
# Provides: postgrey
# Required-Start: $postfix
# Required-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Description: postgrey - greylisting implementation
### END INIT INFO

. /etc/rc.status

# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}

EXE=/usr/local/sbin/postgrey
NAME=postgrey

# Force execution if not called by a runlevel directory.
test -x $EXE || exit 0

case "$1" in
start)
echo -n "Starting $NAME "
startproc $EXE -d --inet=60000 --user=postfix --unix=/var/spool/postfix/private/policy
rc_status -v
;;
stop)
echo -n "Shutting down $NAME "
killproc -TERM $EXE
rc_status -v
;;
restart)
$0 stop
$0 start
rc_status
;;
try-restart)
$0 status
if test $? = 0; then
$0 restart
else
rc_reset
fi
rc_status
;;
force-reload)
$0 stop; sleep 1 && $0 start
rc_status
;;
reload)
echo -n "Reload service $NAME "
killproc -HUP $EXE
rc_status -v
;;
status)
echo -n "Checking for $NAME "
checkproc $EXE
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|try-restart|restart|force-reload|reload|status}"
exit 1
esac
rc_exit

b3ll3roph0n
21.08.07, 14:26
Ich habe es in /etc/init.d kopiert und Symlinks in /etc/init.d/rc3.d sowie /etc/init.d/rc5.d angelegt (S97postgrey).Unter SuSE/openSUSE werden Symlinks nicht manuell gesetzt, sondern mit chkconfig, insserv oder dem Runlevel-Editor (YaST) eingebunden.
Siehe: http://www.linuxforen.de/forums/showpost.php?p=1501695&postcount=21

Außerdem würde ich zur Sicherheit noch wenigstens $syslog und $network zu Required-Start hinzufügen.

matthias-muc
21.08.07, 15:16
SOLVED! Unglaublich, so einfach war's!!! Mit YAST hatte ichs schon probiert, insserv brachte die Wende. Vielleicht lag's auch an den neuen reqs.

Eigentlich ist das alles sogar ziemlich Userfreundlich...

Vielen Dank!