Stefan (metze) Metzmacher
2002-Sep-10 09:39 UTC
[Samba] Re: How do I force Samba to update shared printer list? (2.2.6-pre2)
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@server" style > > >my settings in smb.conf: >------------------------ >kde4@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@10.160.51.2: # this printer is installed on a remote CUPS >server >foomatic: >hp8550@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@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@10.160.51.2] # this printer's > driver is served well by "cupsaddsm" > > name:[\\localhost\DigiMaster] > > name:[\\localhost\foomatic] > > name:[\\localhost\hp8550@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@kde-bitshop:~> rpcclient localhost -N -U'root%root' -c >'enumprinters' # some outputlines deleted >cmd = enumprinters > name:[\\localhost\designj] > > name:[\\localhost\DeskJet990@10.160.51.2] > > name:[\\localhost\DigiMaster] > > name:[\\localhost\foomatic] > > name:[\\localhost\hp8550@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@metzemix.de>
Kurt Pfeifle
2002-Sep-10 10:51 UTC
[Samba] Re: How do I force Samba to update shared printer list? (2.2.6-pre2)
Stefan (metze) Metzmacher wrote:> Try : killall -s HUP /usr/sbin/smbd >Apart from the fact that here nothing like this worked here (I tried this first thing) -- I really need to stop and start the daemon.... ...are you saying this is the *default* behaviour, or are you suggesting it as a quick workaround?> is causes that smbd rereads its config.I can cause a *lot* of activity in the samba log files, if I simply hit the "Update View" (F5) key on any client. It then also goes blank for a few seconds, before a printer list comes back. However, I always get the old printer list shown and no update at the end, be it added or deleted printers... I'd regard it as a bug of my currently used version (if no-one tells me about a false setting in my smb.conf). Another point: if one creates individual shares of printers (instead of using the "load printers = Yes"), the update seems to work (as someone on the phone told me just now...> 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.Thanks for answering. Kurt