[Samba] cups/samba integration problems
Greg Saunders
greg at lnxinc.com
Fri Jul 23 22:43:24 GMT 2004
Some notes first:
Fedora Core 1 (2 node HA cluster, heartbeat & drbd)
Cups 1.1.20
Samba 3.0.4
400 Windows 2000/XP clients
50 print queues
HP Laserjets, Xerox colour multifunctionals, Ricoh mulitfunctionals, HP
DesignJet plotters
2000+ print jobs/day
8000+ pages/day
5GB + print data/day
I have a custom printer accounting application that is run by samba when
a print job arrives at the server. This application supports PCL5, PCL6,
postscript and HPGL2 blah blah blah.
PROBLEM: Because samba and cups are now tightly integrated, samba does
not offer the facility to issue a custom print command (print command =)
when you tell samba the printing system is cups. Samba quietly ignores
any custom print command, postexec, and preexec directives.
The right thing to do would be to write a cups filter to invoke the
printer accounting, however, the cups command line arguments to a filter
program and the environment variables seem lacking some key pieces of
information, namely, the remote host and remote ip address of the
client.
So, in my case, I must break the relationship between cups and samba and
tell samba that the printing system is bsd or lprng in order to use my
printer accounting application. This is where all hell breaks loose.
There seems to be no valid lpq command that samba can hand off to cups
that reports anything that samba understands. Worse, the default lpq
command (lpq -P%p) invokes (I assume) cups lpstat program. Under the
right (or wrong) conditions, this has brought my server to its knees. I
don't know what's wrong with lpstat but it seems to be horribly
inefficient, especially when 400 windows desktops query the samba server
for print queue status (which it is unable to report anyway). In order
to stop the samba/cups duo from crashing my server (doesn't really
crash, it just can't do anything, like a self inflicted DOS attack) i
have to map the samba lpq command to /bin/false.
So here are my two questions:
1. Is it samba or cups that prevents samba from using a custom print
command
2. What the heck is wrong with lpstat. Even a script that runs lpsat
(multiple times) to collect different pieces of information seems to tax
the system.
Thanks
Greg
More information about the samba
mailing list