[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