CUPS beim Booten: Child exited with status 98
Hallo zusammen, nach dem letzten Einspielen der Sicherheitsupdates für SuSE-9.2 wird der CUPS-Server beim Booten nach wenigen Sekunden mit der Meldung: "cupsd: Child exited with status 98" beendet. Nachdem der Rechner hochgefahren ist lässt sich der CUPS-Server mittels "rccups start" ohne Probleme starten. Im cups-logfile steht nur, dass die Adresse angeblich belegt ist: "StartListening: Unable to bind socket for address 00000000:631 - Address already in use." Ein nmap-Lauf zeigt aber, dass der Port unbelegt ist! cupsd.conf scheint mir auch ok zu sein: ist der Port 631 nur einmal erwähnt. Andere hatten manchmal das Phänomen, dass hier der Port/Adresse zweimal von YAST eingatragen war. Außer dem Einspielen der Sicherheitsupdates habe ich nichts am CUPS geschraubt. Für jeden Tipp wäre ich sehr dankbar. Gruß, Matthias
Hallo, On Oct 12 14:12 Administrator wrote (shortened):
nach dem letzten Einspielen der Sicherheitsupdates für SuSE-9.2 wird der CUPS-Server beim Booten nach wenigen Sekunden mit der Meldung: "cupsd: Child exited with status 98" beendet. Nachdem der Rechner hochgefahren ist lässt sich der CUPS-Server mittels "rccups start" ohne Probleme starten.
Im cups-logfile steht nur, dass die Adresse angeblich belegt ist: "StartListening: Unable to bind socket for address 00000000:631 - Address already in use." Ein nmap-Lauf zeigt aber, dass der Port unbelegt ist!
Das hat nichts mit CUPS zu tun, sondern war Zufall. Das Problem ist bekannt: Beim Booten hatte irgendein anderer Prozess den Port 631 kurzzeitig belegt und zwar zu der Zeit als der cupsd gestartet ist. Die üblichen Verdächtigen sind ypbind und die Prozessse, die mit Sun RPC zu tun haben, aber es kann jeder Prozess sein, der als "root" läuft. In CUPS kann das Problem nicht gelöst werden. Gruss, Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
Hallo, Am Mittwoch, 12. Oktober 2005 15:51 schrieb Johannes Meixner:
nach dem letzten Einspielen der Sicherheitsupdates für SuSE-9.2 wird der CUPS-Server beim Booten nach wenigen Sekunden mit der Meldung: "cupsd: Child exited with status 98" beendet. Nachdem der Rechner hochgefahren ist lässt sich der CUPS-Server mittels "rccups start" ohne Probleme starten. ... Das hat nichts mit CUPS zu tun, sondern war Zufall. Das Problem ist bekannt: Beim Booten hatte irgendein anderer Prozess den Port 631 kurzzeitig belegt und zwar zu der Zeit als der cupsd gestartet ist. Die üblichen Verdächtigen sind ypbind und die Prozessse, die mit Sun RPC zu tun haben, aber es kann jeder Prozess sein, der als "root" läuft. In CUPS kann das Problem nicht gelöst werden.
Vielen Dank für die schnelle Antwort. Gibt es irgendeinen sinnvollen workaround? Das Problem tritt leider bei jedem Booten auf und ein manueller Start ist für den Produktiv-Server nicht wirklich optimal. Als Quick&Dirty-Hack fällt mir nur ein Cron-Job ein, der ein "rccups start" ausführt, wenn "rccups status" ein unused zurückgibt. Eleganter wäre es vermutlich, die Startreihenfolge der Dienste etwas zu verändern, aber da traue ich mich nicht ran. Viele Grüße, Matthias
On 10/12/05, Mattias Rüggeberg <admin1@eb-recht.de> wrote:
Hallo,
Am Mittwoch, 12. Oktober 2005 15:51 schrieb Johannes Meixner:
nach dem letzten Einspielen der Sicherheitsupdates für SuSE-9.2 wird der CUPS-Server beim Booten nach wenigen Sekunden mit der Meldung: "cupsd: Child exited with status 98" beendet. Nachdem der Rechner hochgefahren ist lässt sich der CUPS-Server mittels "rccups start" ohne Probleme starten. ... Das hat nichts mit CUPS zu tun, sondern war Zufall. Das Problem ist bekannt: Beim Booten hatte irgendein anderer Prozess den Port 631 kurzzeitig belegt und zwar zu der Zeit als der cupsd gestartet ist. Die üblichen Verdächtigen sind ypbind und die Prozessse, die mit Sun RPC zu tun haben, aber es kann jeder Prozess sein, der als "root" läuft. In CUPS kann das Problem nicht gelöst werden.
Vielen Dank für die schnelle Antwort. Gibt es irgendeinen sinnvollen workaround? Das Problem tritt leider bei jedem Booten auf und ein manueller Start ist für den Produktiv-Server nicht wirklich optimal. Als Quick&Dirty-Hack fällt mir nur ein Cron-Job ein, der ein "rccups start" ausführt, wenn "rccups status" ein unused zurückgibt. Eleganter wäre es vermutlich, die Startreihenfolge der Dienste etwas zu verändern, aber da traue ich mich nicht ran.
Normalerweise sollte das doch durch /etc/bindresvport.blacklist geregelt werden. Habe allerdings nur 9.3 hier, darum weiss ich nicht, ob es das bei 9.2 auch schon gab. Hier ist der Inhalt der Datei bei mir: # # This file contains a list of port numbers between 600 and 1024, # which should not be used by bindresvport. bindresvport is mostly # called by RPC services. This mostly solves the problem, that a # RPC service uses a well known port of another service. # 631 # cups 636 # ldaps 774 # rpasswd 921 # lwresd 993 # imaps 995 # pops Karsten.
Hallo, On Oct 12 14:36 Karsten Künne wrote (shortened):
Beim Booten hatte irgendein anderer Prozess den Port 631 kurzzeitig belegt und zwar zu der Zeit als der cupsd gestartet ist. ... Normalerweise sollte das doch durch /etc/bindresvport.blacklist geregelt werden.
Genau. Man beachte das "Normalerweise". Nichts hindert mich z.B. daran bei gestopptem cupsd mit "netcat -l -p 631" den Port 631 zu belegen und dann bei "rccups start" das "Child exited with status 98" zu bekommen. Wenn man den schuldigen Prozess kennt und es ein anderer Dienst ist (dagegen scheint hier aber zu sprechen, dass der Port 631 nur kurzzeitig belegt war), dann kann man versuchen, den schuldigen Dienst nach cupsd zu starten, siehe z.B. den "ypserv und cups an port 631" Thread: http://lists.suse.com/archive/suse-linux/2005-Jul/1954.html Gruss, Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix@suse.de 90409 Nuernberg, Germany WWW: http://www.suse.de/
participants (4)
-
Administrator
-
Johannes Meixner
-
Karsten Künne
-
Mattias Rüggeberg