Hallo zusammen, ich habe unter SuSE 9.2 zwei Drucker (Brother HL1670N und Epson AcuLaser 4000C) konfiguuriert für Drucken über's Netzwerk (IPP). Beim ersten Druckauftrag wird dieser immer ausgedruckt, dann aber wird der betreffende Drucker von CUPS auf 'disabled' (angehalten) geschaltet und der Druckauftrag bleibt in der Warteschlange erhalten. Unter /var/log/cupsd.conf gibt's eine interessante Zeile, siehe '<=======': D [29/Jan/2005:12:30:52 +0100] StartJob(7, 0x8097528) D [29/Jan/2005:12:30:52 +0100] StartJob() id = 7, file = 0/1 D [29/Jan/2005:12:30:52 +0100] job-sheets=none,none D [29/Jan/2005:12:30:52 +0100] banner_page = 0 D [29/Jan/2005:12:30:52 +0100] StartJob: argv = "HL1670N","7","georg","tmprpDovnD","1","","/var/spool/cups/d00007-001" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[0]="PATH=/usr/lib/cups/filter:/bin:/usr/bin" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[1]="SOFTWARE=CUPS/1.1" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[2]="USER=root" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[3]="CHARSET=utf-8" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[4]="LANG=de" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[5]="PPD=/etc/cups/ppd/HL1670N.ppd" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[6]="CUPS_SERVERROOT=/etc/cups" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[7]="RIP_MAX_CACHE=8m" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[8]="TMPDIR=/var/spool/cups/tmp" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[9]="CONTENT_TYPE=application/postscript" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[10]="DEVICE_URI=ipp://192.168.100.99:631/ipp/port1" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[11]="PRINTER=HL1670N" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[12]="CUPS_DATADIR=/usr/share/cups" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[13]="CUPS_FONTPATH=/usr/share/cups/fonts" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[14]="CUPS_SERVER=localhost" D [29/Jan/2005:12:30:52 +0100] StartJob: envp[15]="IPP_PORT=631" d [29/Jan/2005:12:30:52 +0100] StartJob: Allocating status buffer... D [29/Jan/2005:12:30:52 +0100] StartJob: statusfds = [ 9 12 ] D [29/Jan/2005:12:30:52 +0100] StartJob: filterfds[1] = [ 14 -1 ] D [29/Jan/2005:12:30:52 +0100] StartJob: filter = "/usr/lib/cups/filter/pstops" D [29/Jan/2005:12:30:52 +0100] StartJob: filterfds[0] = [ 15 16 ] D [29/Jan/2005:12:30:52 +0100] start_process("/usr/lib/cups/filter/pstops", 0xbffee330, 0xbffed6a0, 14, 16, 12) I [29/Jan/2005:12:30:52 +0100] Started filter /usr/lib/cups/filter/pstops (PID 5529) for job 7. D [29/Jan/2005:12:30:52 +0100] StartJob: filter = "/usr/lib/cups/filter/foomatic-rip" D [29/Jan/2005:12:30:52 +0100] StartJob: filterfds[1] = [ 14 17 ] D [29/Jan/2005:12:30:52 +0100] tart_process("/usr/lib/cups/filter/foomatic-rip", 0xbffee330, 0xbffed6a0, 15, 17, 12) I [29/Jan/2005:12:30:52 +0100] Started filter /usr/lib/cups/filter/foomatic-rip (PID 5530) for job 7. D [29/Jan/2005:12:30:52 +0100] StartJob: backend = "/usr/lib/cups/backend/ipp" D [29/Jan/2005:12:30:52 +0100] StartJob: filterfds[0] = [ -1 15 ] D [29/Jan/2005:12:30:52 +0100] start_process("/usr/lib/cups/backend/ipp", 0xbffee330, 0xbffe d6a0, 14, 15, 12) I [29/Jan/2005:12:30:52 +0100] Started backend /usr/lib/cups/backend/ipp (PID 5531) for job 7. [snipped] D [29/Jan/2005:12:30:54 +0100] [Job 7] job-name = "tmprpDovnD" d [29/Jan/2005:12:30:55 +0100] select_timeout: 11 seconds to process active jobs I [29/Jan/2005:12:30:56 +0100] [Job 7] Print file accepted - job ID 5033. d [29/Jan/2005:12:30:57 +0100] select_timeout: 11 seconds to process active jobs E [29/Jan/2005:12:30:58 +0100] PID 5531 stopped with status 0! <======= !!!! D [29/Jan/2005:12:30:58 +0100] UpdateJob: job 7, file 0 is complete. d [29/Jan/2005:12:30:58 +0100] UpdateJob: Removing fd 9 from InputSet... D [29/Jan/2005:12:30:58 +0100] StopJob: id = 7, force = 0 I [29/Jan/2005:12:30:58 +0100] Saving printers.conf... Wenn ich das richtig verstehe, wird der Druckauftrag ausgeführt, allerdings kommen ein child-process (wohl der backend) mit '0' zurück, was einem Fehler entspricht. Im source-code von CUPS wird diese Zeile von scheduler/main.c ausgegeben und zeit den WEXITSTATUS() an. Hier wohl um die Routine process_children(), worin wiederum mit wait oder waitpid() auf das Ende eines Prozesses gewartet wird. und die '0' entspricht nun dem Exit-Code dieses Prozesses. Das ist ja alles schon und gut, aber ich weiß nicht, was hier eigentlich falsch ist. Ich habe drei verschiedene Rechner, alle mit SuSE 9.2 und demselben Problem mit diesen beiden Druckern. Was könnte ich falsch gemacht haben. Warum wird der Auftrag zwar abgearbeitet, am Ende aber ein Fehler erkannt? Ich hatte zuvor auf den Rechnern gentoo am Laufen, mit dem aktuellen CUPS und es gab keine Probleme mit ein und derselben Einstellung. Hat irgendjemand eine Idee zu dieser Problemstellung. Ciao, Georg