[Samba] Re: How do I force Samba to update shared printer list?
(2.2.6-pre2)
Stefan (metze) Metzmacher
metze at metzemix.de
Tue Sep 10 09:39:35 GMT 2002
Try : killall -s HUP /usr/sbin/smbd
is causes that smbd rereads its config.
At 11:20 10.09.2002 +0200, Kurt Pfeifle wrote:
>Hi,
>
>I have a question regarding the visible list of printers in the network
>neighbourhood of my Samba server, and how to force it to become updated.
>Maybe one of my settings is wrong? Maybe it is a bug?
>
>My problem (short):
>-------------------
>Adding a new printer in CUPS creats printcap entry within seconds.
>But becomes not visible in network neighbourhood without re-start of
>smbd.
>
>System info:
>------------
>* SuSE 7.3
>* Samba 2.2.6-pre2 (compiled from recent CVS sources, after the "big
> print patch"; dunno if my version-# is right though)
>* CUPS 1.1.15
>
>
>some relevant settings in cupsd.conf:
>-------------------------------------
>
>Printcap /etc/printcap # this directive lets CUPS generate a
> # dummy printcap
>
>Browsing On # this directive lets CUPS listen for
> # printer announcments by other CUPS servers
>
>BrowseAddress 10.160.51.255 # this directive lets CUPS announce its own
> # locally installed printers to the LAN
>
>BrowseAllow All # this directive asks CUPS to show *all*
> # printer announcements unfiltered
>
>BrowseShortNames No # this directive asks CUPS to show printers on
> # CUPS servers in a "printer at server" style
>
>
>my settings in smb.conf:
>------------------------
>kde4 at kde-bitshop:/etc/samba/ > cat smb.conf |grep -v "^$"|grep -v "^;"
>|grep -v "^#"
>[global]
> workgroup = CUPS-Print
> show add printer wizard = yes
> encrypt passwords = Yes
> map to guest = Bad User
> time server = Yes
> unix extensions = Yes
> socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
> printcap name = cups
> printing = cups
> character set = ISO8859-15
> os level = 2
> veto files = /*.eml/*.nws/riched20.dll/*.{*}/
> guest account = Nobody
> log level = 3
> load printers = Yes
>
> wins support = No
> client code page = 850
>[homes]
> comment = Home Directories
> valid users = %S
> read only = No
> create mask = 0640
> directory mask = 0750
> browseable = No
>[printers]
> comment = All Printers
> path = /var/spool/samba
> create mask = 0600
> printable = Yes
> browseable = Yes
> public = yes
> guest ok = yes
> writable = no
> printer admin = root
>[print$]
> comment = Printer Drivers
> path = /etc/samba/drivers
> write list = root,Danka,kde4,kurt
> browseable = Yes
> guest ok = Yes
> read only = yes
>
>
>My problem (long description):
>------------------------------
>After adding a new printer in CUPS, it appears within seconds in
>"/etc/printcap", but it is not visible in the network neighbourhood (even
>after waiting one hour). (Client is a Windows XP Professional)
>
>* It is visible within seconds to other CUPS boxen via the "CUPS browsing"
> mechanism.
>
>* It does not even appear on a client's radar when executing "F5" (Update
>View)
> [my translation; I have a German version of WinXP running], even after the
> client seems to chew quite a few seconds on the command, with the
> printer list
> dissappearing for the same timespan, and while "tail -f log.smbd" seems to
> indicate that Samba is processing the update request.
>
>* It is also not visible through the "rpcclient" command:
> "rpcclient localhost -N -U'root%root' -c 'enumprinters'" too shows the old
> list...
>
>* BTW, the "cupsaddsmb -v" command also fails for that printer:
> --> it says "Printer Driver... successfully installed" (for WIN40 and
> W32X86),
> but...
> --> it says "cmd = setdriver... result was NT_STATUS_UNSUCCESSFUL"
>
>* The missing update of the view also concerns the deletion of printers. If I
> use "lpadmin -x printer_name" to delete a printer, this one dissappears
> from
> the printcap the next second, but is visible in the network
> neighbourhood for
> ages (even through re-boots of the Win client(s)), until a re-start of
> smbd.
>
>* When watching the log.smbd while updating the view of a client onto the
>Samba
> server's printer folder, one can find error messages appearing that say
> this
> (debuglevel 5, grepping for "2027"):
>
> turbo_xp (10.160.51.70) couldn't find service is2027
> checking for home directory is2027 gave (NULL)
> checking whether is2027 is a valid printer name...
> cups_printername_ok("is2027")
> Unable to get printer status for is2027 - client-error-not-found
> is2027 is not a valid printer name
> find_service() failed to find service is2027
> turbo_xp (10.160.51.70) couldn't find service is2027
>
> Now, this phantom printer "is2027" was deleted by me several weeks ago
> on the
> CUPS/Samba server. It is also not visible for the WinXP client (being
> "turbo_xp" with IP 10.160.51.70) in the network neighbokurhood. (However,
> there are still traces of "is2027" in the registry of turbo_xp). -- Still,
> every update request for the (is2027-lacking) view on the Samba printer
> folder from a client generates new entries like the above one in the log
> file...
>
>* Only a complete re-start of Samba forces the immediate visibility of the new
> printer in the network neighbourhood as well as through "rpcclient
> enumprinters".
>
>* After the re-start of Samba, "cupsaddsmb" is able to prepare the driver for
> download to the clients:
> --> it says "Printer Driver... successfully installed" (for WIN40 and
> W32X86),
> but...
> --> it says "cmd = setdriver... Succesfully set... to driver ...."
>
> After that, clients can install the driver just fine and, of course,
> printing
> also works.... ;-) [BTW, "cupsaddsmb" is even capable to install drivers
> which are not *locally* installed, but on a remote CUPS server! For details
> and a more detailed transcript of a commandline session, please see the
> files
> on http://www.linuxprinting.org/kpfeifle/tmp/ . I've also placed my
> working,
> selfcompiled SuSE-7.3 samba-2.2.6-pre2 RPM package and the "cupsaddsmb"
> binary there...
>
>Someone knowing more about the
>"updating-view-not-working-without-smbd-restart"
>than me?
>
>Thanks & Cheers,
>Kurt
>
>
>##########################################
>------------------------------------------
>attachment of example session transscript:
>------------------------------------------
>##########################################
>
>#-----------------------------------#
>#-- installing additional printer --#
>#-----------------------------------#
>kde-bitshop:~ # lpadmin -p printer_visible_only_after_restart_of_smbd \
> -v socket://10.160.51.131:9100 \
> -E \
> -P /etc/cups/ppd/mopi.ppd
>
>#-----------------------------------#
>#---- examining the printcap ----#
>#-----------------------------------#
>kde-bitshop:~ # cat /etc/printcap
># This file was automatically generated by cupsd(8) from the
># /etc/cups/printers.conf file. All changes to this file
># will be lost.
>DigiMaster:
>designj:
>DeskJet990 at 10.160.51.2: # this printer is installed on a remote CUPS
>server
>foomatic:
>hp8550 at 10.160.51.2: # second printer on remote CUPS server
>HPOfficeHetD155:
>ir8500:
>mopi:
>mopi2:
>pdfgoffioul:
>peerkoch:
>printer_visible_only_after_restart_of_smbd: # this printer not visible in
>rpcclient or network neighbourhood
>ryan:
>test2devnull:
>testdeskjetppd:
>testprinter:
>
>#------------------------------------------------#
>#-- does 'rpcclient' list the new printer? No! --#
>#------------------------------------------------#
>kde4 at kde-bitshop:~> rpcclient localhost -N -U'root%root' -c
>'enumprinters' # some outputlines deleted
>cmd = enumprinters
> name:[\\localhost\a] # this printer had been
> deleted and doesn't
> # appear in printcap any
> more...
> name:[\\localhost\designj]
>
> name:[\\localhost\DeskJet990 at 10.160.51.2] # this printer's
> driver is served well by "cupsaddsm"
>
> name:[\\localhost\DigiMaster]
>
> name:[\\localhost\foomatic]
>
> name:[\\localhost\hp8550 at 10.160.51.2] # cupsaddsmb works
> here too....
>
> name:[\\localhost\HPOfficeHetD155]
>
> name:[\\localhost\ir8500]
>
> name:[\\localhost\mopi]
>
> name:[\\localhost\mopi2]
>
> name:[\\localhost\pdfgoffioul]
>
> name:[\\localhost\peerkoch]
>
> name:[\\localhost\ryan]
>
> name:[\\localhost\test2devnull]
>
> name:[\\localhost\testdeskjetppd]
>
> name:[\\localhost\testprinter]
>
>#-----------------------------------#
>#--- does 'cupsaddsmb' work? No! ---#
>#-----------------------------------#
>kde-bitshop:/home/kde4 # cupsaddsmb -v
>printer_visible_only_after_restart_of_smbd
>[....]
>running command: rpcclient localhost -N -U'root%root' -c 'adddriver
>"Windows NT x86" [....]:RAW:NULL"'
>cmd = adddriver "Windows NT x86"
>"printer_visible_only_after_restart_of_smbd:[....]:RAW:NULL"
>Printer Driver printer_visible_only_after_restart_of_smbd successfully
>installed.
>
>Running command: rpcclient localhost -N -U'root%root' -c 'adddriver
>"Windows 4.0" [....]DEFPRTR2.PPD,ICONLIB.DLL"'
>cmd = adddriver "Windows 4.0"
>"printer_visible_only_after_restart_of_smbd:[....] DEFPRTR2.PPD,ICONLIB.DLL"
>Printer Driver printer_visible_only_after_restart_of_smbd successfully
>installed.
>
>Running command: rpcclient localhost -N -U'root%root' -c 'setdriver
> printer_visible_only_after_restart_of_smbd
> printer_visible_only_after_restart_of_smbd'
>cmd = setdriver printer_visible_only_after_restart_of_smbd
>printer_visible_only_after_restart_of_smbd
>result was NT_STATUS_UNSUCCESSFUL
>
>#------------------------------------------------------------------------------------------#
>#- can Win clients download driver for
>"printer_visible_only_after_restart_of_smbd"? NO! -#
>#------------------------------------------------------------------------------------------#
>This is to be expected, after 'cupsaddsmb' failed so obviously....
>
>
>#---------------------------#
>#---- stopping samba... ----#
>#---------------------------#
>kde-bitshop:~> su
>Password:
>
>kde-bitshop:/home/kde4 # ps aux |grep mbd
>root 30131 0.0 0.1 4372 920 ? S Sep09 0:01 /usr/sbin/nmbd -D
>-s /etc/samba/smb.conf
>root 30133 0.0 0.1 5760 784 ? S Sep09 0:00 /usr/sbin/smbd -D
>-s /etc/samba/smb.conf
>root 30135 0.0 0.7 7280 3760 ? S Sep09 0:26 /usr/sbin/smbd -D
>-s /etc/samba/smb.conf
>root 24448 0.0 0.1 1764 688 pts/14 S 08:56 0:00 grep mbd
>
>kde-bitshop:/home/kde4 # kill 30131 30133 30135
>
>#-----------------------------#
>#---- restarting samba... ----#
>#-----------------------------#
>kde-bitshop:/home/kde4 # /usr/sbin/nmbd -D -s /etc/samba/smb.conf
>
>kde-bitshop:/home/kde4 # /usr/sbin/smbd -D -s /etc/samba/smb.conf
>
>kde-bitshop:/home/kde4 # exit
>exit
>
>#-----------------------------------------------------#
>#-- does 'rpcclient' now list the new printer? YES! --#
>#-----------------------------------------------------#
>kde4 at kde-bitshop:~> rpcclient localhost -N -U'root%root' -c
>'enumprinters' # some outputlines deleted
>cmd = enumprinters
> name:[\\localhost\designj]
>
> name:[\\localhost\DeskJet990 at 10.160.51.2]
>
> name:[\\localhost\DigiMaster]
>
> name:[\\localhost\foomatic]
>
> name:[\\localhost\hp8550 at 10.160.51.2]
>
> name:[\\localhost\HPOfficeHetD155]
>
> name:[\\localhost\ir8500]
>
> name:[\\localhost\mopi]
>
> name:[\\localhost\mopi2]
>
> name:[\\localhost\pdfgoffioul]
>
> name:[\\localhost\peerkoch]
>
> name:[\\localhost\printer_visible_only_after_restart_of_smbd] #
> I told you so!
>
> name:[\\localhost\ryan]
>
> name:[\\localhost\test2devnull]
>
> name:[\\localhost\testdeskjetppd]
>
> name:[\\localhost\testprinter]
>
>
>#--------------------------------------------#
>#--- does 'cupsaddsmb' work *now* ? YES!! ---#
>#--------------------------------------------#
>kde-bitshop:/home/kde4 # cupsaddsmb -v
>printer_visible_only_after_restart_of_smbd
>[....]
>running command: rpcclient localhost -N -U'root%root' -c 'adddriver
>"Windows NT x86" [....]:RAW:NULL"'
>cmd = adddriver "Windows NT x86"
>"printer_visible_only_after_restart_of_smbd:[....]:RAW:NULL"
>Printer Driver printer_visible_only_after_restart_of_smbd successfully
>installed.
>
>Running command: rpcclient localhost -N -U'root%root' -c 'adddriver
>"Windows 4.0" [....]DEFPRTR2.PPD,ICONLIB.DLL"'
>cmd = adddriver "Windows 4.0"
>"printer_visible_only_after_restart_of_smbd:[....] DEFPRTR2.PPD,ICONLIB.DLL"
>Printer Driver printer_visible_only_after_restart_of_smbd successfully
>installed.
>
>Running command: rpcclient localhost -N -U'root%root' -c 'setdriver
> printer_visible_only_after_restart_of_smbd
> printer_visible_only_after_restart_of_smbd'
>cmd = setdriver printer_visible_only_after_restart_of_smbd
>printer_visible_only_after_restart_of_smbd
>Succesfully set printer_visible_only_after_restart_of_smbd to driver
>printer_visible_only_after_restart_of_smbd.
>
>
>#---------------------------------------------------------------------------------------#
>#- can clients *now* download driver for
>"printer_visible_only_after_restart_of_smbd" -#
>#- and print to it?
>YES! -#
>#---------------------------------------------------------------------------------------#
metze
-----------------------------------------------------------------------------
Stefan "metze" Metzmacher <metze at metzemix.de>
More information about the samba
mailing list