[Samba] Printing - "lprm command" not getting executed
DNeilson at westfam.com
Thu Dec 5 20:31:00 GMT 2002
I am attempting to get printing services for Windows 2000 clients working
with Samba on a Red Hat 7.2 box. The problem is I can not cancel print jobs
(either from a PC or the local smb client). File sharing, and printing
other than this problem, work fine.
Here is a listing of configuration and system info: 1) the samba packages
installed, 2) output of "uname -a", 3) the relevant parts of the smb.conf
file, 4) printing capabilities which work, and 5) more detailed information
about the problem.
1) SAMBA PACKAGES
2) RED HAT LINUX
Linux pegasus 2.4.7-10 #1 Thu Sep 6 17:27:27 EDT 2001 i686 unknown
3) EXCERPTS FROM SMB.CONF
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = WIN # A W2K DOMAIN
# server string is the equivalent of the NT Description field
domain logons = yes
# if you want to automatically load your printer list rather
# than setting them up individually then you'll need this
printcap name = /etc/printcap
load printers = yes
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx
printing = bsd ### I HAVE ALSO TRIED lprng, AND LEAVING THIS COMMENTED
# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = domain
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
printer admin = tiberius,dneilson,root
print command = /usr/bin/lpr -r -P%p %s
lpq command = /usr/bin/lpq -P%p %j
lprm command = /usr/bin/lprm -P%p %j
queuepause command = /usr/sbin/lpc stop %p
queueresume command = /usr/sbin/lpc start %p
#============================ Share Definitions
valid users=dneilson mellwein
print command=/usr/bin/lpr -r -P%p %s
lprm command=/usr/bin/lprm -P%p %j
4) PRINTING CAPABILITIES THAT WORK
I can print from the local smbclient as well as any Windows 2000 client I
choose. I am able to pause and unpause the print queue. I have not had
any problem printing any kind of document in the correct format.
5) MORE DETAILS OF THE PROBLEM.
When I try to delete a job, Samba gives the indication it deleted the job.
On a Windows 2000 client, after I delete the job and hit Refresh, the job
is gone. On the local smbclient, after I cancel the job and type "queue",
the job is gone. But in both cases, if I type lpstat -t from the server
command line, the job is still out there.
This problem can't be specific to Samba 2.2.1a, because I have tried it on
a machine with 2.2.7, and have gotten the same results.
In troubleshooting, I changed the "lprm command" line to read: "lprm
command=/tmp/lprm %p %j". The /tmp/lprm script consists of the following:
#### START SCRIPT /tmp/lprm
/usr/bin/id > /tmp/lprm.out
/usr/bin/lprm -P$1 $2 >> /tmp/lprm.out 2>&1
#### END SCRIPT /tmp/lprm
When I cancel jobs, this script should at least create an output file,
but it doesn't - which indicates it doesn't get run. As a result, I think
Samba is not paying any attention to the "lprm command" line in the
smb.conf. Be aware that "testparm" will show the "lprm command" as having
the correct parameters (/usr/bin/lprm -P%p %j).
I have checked the samba log files, and they are not written to when I
try to cancel jobs.
I have tried running a trace of the smbd command when I try to cancel jobs,
and here is the output. It is only one line long:
### START strace OUTPUT
select(1024, [9 10], NULL, NULL, NULL <unfinished ...>
### END strace OUTPUT
More information about the samba