---
name: "cups-browsed.conf"
section: "5"
platform: "linux"
package: "cups-browsed"
version: "2.1.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/cups-browsed.conf"
---

# cups-browsed.conf(5)

server configuration file for cups-browsed

## NAME

**cups-browsed.conf** - server configuration file for cups-browsed

## DESCRIPTION

**The cups-browsed.conf file configures the cups-browsed daemon. It is normally** **located in the /etc/cups directory. Each line in the file can be a** **configuration directive, a blank line, or a comment. Comment lines start** **with the # character.**

## DIRECTIVES

**The "CacheDir" directive determines where cups-browsed should save** **information about the print queues it had generated when shutting down,** **like whether one of these queues was the default printer, or default** **option settings of the queues.**

```
        CacheDir /var/cache/cups
```

**With "LogDir" can be defined where cups-browsed creates its debug log file** **(if "DebugLogging file" is set).**

```
        LogDir /var/log/cups
```

**The "DebugLogging" directive determines how should debug logging be done.** **Into the file /var/log/cups/cups-browsed\_log ("file"), to stderr ("stderr"), or** **not at all ("none").**

**Note that if cups-browsed is running as a system service (for example** **via systemd) logging to stderr makes the log output going to the** **journal or syslog. Only if you run cups-browsed from the command line** **(for development or debugging) it will actually appear on stderr.**

```
        DebugLogging file
        DebugLogging stderr
        DebugLogging file stderr
        DebugLogging none
```

**Only browse remote printers (via DNS-SD) from** **selected servers using the "BrowseAllow", "BrowseDeny", and** **"BrowseOrder" directives**

**This serves for restricting the choice of printers in print dialogs** **to trusted servers or to reduce the number of listed printers in the** **print dialogs to a more user-friendly amount in large networks with** **very many shared printers.**

**This only filters the selection of remote printers for which** **cups-browsed creates local queues. If the print dialog uses other** **mechanisms to list remote printers as for example direct DNS-SD** **access, cups-browsed has no influence. cups-browsed also does not** **prevent the user from manually accessing non-listed printers.**

**"BrowseAllow": Accept printers from these hosts or networks. If there** **are only "BrowseAllow" lines and no "BrowseOrder" and/or "BrowseDeny"** **lines, only servers matching at last one "BrowseAllow" line are** **accepted.**

**"BrowseDeny": Deny printers from these hosts or networks. If there are** **only "BrowseDeny" lines and no "BrowseOrder" and/or "BrowseAllow"** **lines, all servers NOT matching any of the "BrowseDeny" lines are** **accepted.**

**"BrowseOrder": Determine the order in which "BrowseAllow" and** **"BrowseDeny" lines are applied. With "BrowseOrder Deny,Allow" in the** **beginning all servers are accepted, then the "BrowseDeny" lines are** **applied to exclude unwished servers or networks and after that the** **"BrowseAllow" lines to re-include servers or networks. With** **"BrowseOrder Allow,Deny" we start with denying all servers, then** **applying the "BrowseAllow" lines and afterwards the "BrowseDeny"** **lines.**

**Default for "BrowseOrder" is "Deny.Allow" if there are both** **"BrowseAllow" and "BrowseDeny" lines.**

**If there are no "Browse..." lines at all, all servers are accepted.**

```
        BrowseAllow All
        BrowseAllow 192.168.7.20
        BrowseAllow 192.168.7.0/24
        BrowseAllow 192.168.7.0/255.255.255.0
        BrowseDeny All
        BrowseDeny 192.168.1.13
        BrowseDeny 192.168.3.0/24
        BrowseDeny 192.168.3.0/255.255.255.0
        BrowseOrder Deny,Allow
        BrowseOrder Allow,Deny
```

**Filtering of remote printers by other properties than IP addresses of** **their servers**

**Often the desired selection of printers cannot be reached by only** **taking into account the IP addresses of the servers. For these cases** **there is the BrowseFilter directive to filter by most of the known** **properties of the printer.**

**By default there is no BrowseFilter line meaning that no filtering is** **applied.**

**To do filtering one can supply one or more BrowseFilter directives** **like this:**

```
        BrowseFilter [NOT] [EXACT] <FIELD> [<VALUE>]
```

**The BrowseFilter directive always starts with the word "BrowseFilter"** **and it must at least contain the name of the data field (\<FIELD\>) of** **the printer's properties to which it should apply.**

**Available field names are:**

```
        name:    Name of the local print queue to be created
        host:    Host name of the remote print server
        port:    Port through which the printer is accessed on the server
        service: DNS/SD service name of the remote printer
        domain:  Domain of the remote print server
```

**Also all field names in the TXT records of DNS-SD-advertised printers** **are valid, like "color", "duplex", "pdl", ... If the field name of the** **filter rule does not exist for the printer, the rule is skipped.**

**The optional \<VALUE\> field is either the exact value (when the option** **EXACT is supplied) or a regular expression (Run "man 7 regex" in a** **terminal window) to be matched with the data field.**

**If no \<VALUE\> filed is supplied, rules with field names of the TXT** **record are considered for boolean matching (true/false) of boolean** **field (like duplex, which can have the values "T" for true and "F" for** **false).**

**If the option NOT is supplied, the filter rule is fulfilled if the** **regular expression or the exact value DOES NOT match the content of** **the data field. In a boolean rule (without \<VALUE\>) the rule matches** **false.**

**Regular expressions are always considered case-insensitive and** **extended POSIX regular expressions. Field names and options (NOT,** **EXACT) are all evaluated case-insensitive. If there is an error in a** **regular expression, the BrowseFilter line gets ignored.**

**Especially to note is that supplying any simple string consisting of** **only letters, numbers, spaces, and some basic special characters as a** **regular expression matches if it is contained somewhere in the data** **field.**

**If there is more than one BrowseFilter directive, ALL the directives** **need to be fulfilled for the remote printer to be accepted. If one is** **not fulfilled, the printer will get ignored.**

**Examples:**

**Rules for standard data items which are supplied with any remote** **printer advertised via DNS-SD:**

**Print queue name must contain "hum\_res\_", this matches "hum\_res\_mono"** **or "hum\_res\_color" but also "old\_hum\_res\_mono":**

```
        BrowseFilter name hum_res_
```

**This matches if the remote host name contains "printserver", like** **"printserver.local", "printserver2.example.com", "newprintserver":**

```
        BrowseFilter host printserver
```

**This matches all ports with 631 int its number, for example 631, 8631,** **10631,...:**

```
        BrowseFilter port 631
```

**This rule matches if the DNS-SD service name contains "@ printserver":**

```
        Browsefilter service @ printserver
```

**Matches all domains with "local" in their names, not only "local" but** **also things like "printlocally.com":**

```
        BrowseFilter domain local
```

**Examples for rules applying to items of the TXT record:**

**This rule selects PostScript printers, as the "PDL" field in the TXT** **record contains "postscript" then. This includes also remote CUPS** **queues which accept PostScript, independent of whether the physical** **printer behind the CUPS queue accepts PostScript or not.**

```
        BrowseFilter pdl postscript
```

**Color printers usually contain a "Color" entry set to "T" (for true)** **in the TXT record. This rule selects them:**

```
        BrowseFilter color
```

**This is a similar rule to select only duplex (automatic double-sided** **printing) printers:**

```
        BrowseFilter duplex
```

**Rules with the NOT option:**

**This rule EXCLUDES printers from all hosts containing "financial" in** **their names, nice to get rid of the 100s of printers of the financial** **department:**

```
        BrowseFilter NOT host financial
```

**Get only monochrome printers ("Color" set to "F", meaning false, in** **the TXT record):**

```
        BrowseFilter NOT color
```

**Rules with more advanced use of regular expressions:**

**Only queue names which BEGIN WITH "hum\_res\_" are accepted now, so we** **still get "hum\_res\_mono" or "hum\_res\_color" but not "old\_hum\_res\_mono"** **any more:**

```
        BrowseFilter name ^hum_res_
```

**Server names is accepted if it contains "print\_server" OR** **"graphics\_dep\_server":**

```
        BrowseFilter host print_server|graphics_dep_server
```

**"printserver1", "printserver2", and "printserver3", nothing else:**

```
        BrowseFilter host ^printserver[1-3]$
```

**Printers understanding at least one of PostScript, PCL, or PDF:**

```
        BrowseFilter pdl postscript|pcl|pdf
```

**Examples for the EXACT option:**

**Only printers from "printserver.local" are accepted:**

```
        BrowseFilter EXACT host printserver.local
```

**Printers from all servers except "prinserver2.local" are accepted:**

```
        BrowseFilter NOT EXACT host prinserver2.local
```

**The BrowsePoll directive polls a server for available printers once** **every 60 seconds. Multiple BrowsePoll directives can be specified** **to poll multiple servers. The default port to connect to is 631.**

```
        BrowsePoll 192.168.7.20
        BrowsePoll 192.168.7.65:631
        BrowsePoll host.example.com:631
```

**The BrowseLocalProtocols directive specifies the protocols to use** **when advertising local shared printers on the network. The default** **is "none". Control of advertising of local shared printers using** **dnssd is done by CUPS and configured in /etc/cups/cupsd.conf.**

```
        BrowseLocalProtocols none
```

**The BrowseRemoteProtocols directive specifies the protocols to use** **when finding remote shared printers on the network. Multiple** **protocols can be specified by separating them with spaces.** **The default is "dnssd".**

```
        BrowseRemoteProtocols none
        BrowseRemoteProtocols dnssd
```

**The BrowseProtocols directive specifies the protocols to use when** **finding remote shared printers on the network and advertising local** **shared printers.** **Multiple protocols can be specified by separating them with spaces.**

```
        BrowseProtocols none
        BrowseProtocols dnssd
```

**The DomainSocket directive specifies the domain socket through which** **the locally running CUPS daemon is accessed. If not specified the** **standard domain socket of CUPS is used. Use this if you have specified** **an alternative domain socket for CUPS via a Listen directive in** **/etc/cups/cupsd.conf. If cups-browsed is not able to access the local** **CUPS daemon via a domain socket it accesses it via localhost. "None"** **or "Off" lets cups-browsed not use CUPS' domain socket.**

```
        DomainSocket /var/run/cups/cups.sock
        DomainSocket None
        DomainSocket Off
```

**Set HTTP timeout (in seconds) for requests sent to local/remote** **resources Note that too short timeouts can make services getting** **missed when they are present and operations be unnecessarily** **repeated and too long timeouts can make operations take too long** **when the server does not respond.**

```
        HttpLocalTimeout 5
        HttpRemoteTimeout 10
```

**Set how many retries (N) should cups-browsed do for creating print** **queues for remote printers which receive timeouts during print queue** **creation.  The printers which are not successfully set up even after N** **retries, are skipped until the next restart of the service.  Note that** **too many retries can cause high CPU load.**

```
        HttpMaxRetries 5
```

**The interval between browsing/broadcasting cycles, local and/or** **remote, can be adjusted with the BrowseInterval directive.**

```
        BrowseInterval 60
```

**The BrowseTimeout directive determines the amount of time that** **browsing-related operations are allowed to take in seconds.** **Notably, adding or removing one printer queue is considered as one** **operation. The timeout applies to each one of those operations.**

```
        BrowseTimeout 300
```

**The AllowResharingRemoteCUPSPrinters directive determines whether a** **print queue pointing to a remote CUPS queue will be re-shared to the** **local network or not. Since the queues generated using the BrowsePoll** **directive are also pointing to remote queues, they are also shared** **automatically if the following option is set. Default is not to share** **remote queues.**

```
        AllowResharingRemoteCUPSPrinters Yes
```

**The NewBrowsePollQueuesShared directive determines whether a print** **queue for a newly discovered printer (discovered by the BrowsePoll directive)** **will be shared to the local network or not. This directive will only work** **if AllowResharingRemoteCUPSPrinters is set to yes. Default is** **not to share printers discovered using BrowsePoll.**

```
        NewBrowsePollQueuesShared Yes
```

**Set OnlyUnsupportedByCUPS to "Yes" will make cups-browsed not create** **local queues for remote printers for which CUPS creates queues by** **itself.  These printers are printers advertised via DNS-SD and doing** **CUPS-supported (currently PWG Raster and Apple Raster) driverless** **printing, including remote CUPS queues. Queues for other printers** **(like for legacy PostScript/PCL printers) are always created** **(depending on the other configuration settings of cups-browsed).**

**With OnlyUnsupportedByCUPS set to "No", cups-browsed creates queues** **for all printers which it supports, including printers for which CUPS** **would create queues by itself. Temporary queues created by CUPS will** **get overwritten. This way it is assured that any extra functionality** **of cups-browsed will apply to these queues. As queues created by** **cups-browsed are permanent CUPS queues this setting is also** **recommended if applications/print dialogs which do not support** **temporary CUPS queues are installed. This setting is the default.**

```
        OnlyUnsupportedByCUPS Yes
```

**With UseCUPSGeneratedPPDs set to "Yes" cups-browsed creates queues** **for IPP printers with PPDs generated by the PPD generator of CUPS** **and not with the one of cups-browsed. So any new development in** **CUPS' PPD generator gets available. As CUPS' PPD generator is not** **directly accessible, we need to make CUPS generate a temporary print** **queue with the desired PPD. Therefore we can only use these PPDs** **when our queue replaces a temporary CUPS queue, meaning that the** **queue is for a printer on which CUPS supports driverless printing** **(IPP 2.x, PDLs: PDF, PWG Raster, and/or Apple Raster) and that its** **name is the same as CUPS uses for the temporary queue** **("LocalQueueNamingIPPPrinter DNS-SD" must be set). The directive** **applies only to IPP printers, not to remote CUPS queues, to not** **break clustering. Setting this directive to "No" lets cups-browsed** **generate the PPD file. Default setting is "No".**

```
        UseCUPSGeneratedPPDs No
```

**With the directives LocalQueueNamingRemoteCUPS and** **LocalQueueNamingIPPPrinter you can determine how the names for local** **queues generated by cups-browsed are generated, separately for remote** **CUPS printers and IPP printers.**

**"DNS-SD" (the default in both cases) bases the naming on the service** **name of the printer's advertised DNS-SD record. This is exactly the** **same naming scheme as CUPS uses for its temporary queues, so the local** **queue from cups-browsed prevents CUPS from listing and creating an** **additional queue. As DNS-SD service names have to be unique, queue** **names of printers from different servers will also be unique and so** **there is no automatic clustering for load-balanced printing.**

**"MakeModel" bases the queue name on the printer's manufacturer and** **model names. This scheme cups-browsed used formerly for IPP printers.**

**"RemoteName" is only available for remote CUPS queues and uses the** **name of the queue on the remote CUPS server as the local queue's** **name. This makes printers on different CUPS servers with equal queue** **names automatically forming a load-balancing cluster as CUPS did** **formerly (CUPS 1.5.x and older) with CUPS-broadcasted remote** **printers. This scheme cups-browsed used formerly for remote CUPS** **printers.**

```
        LocalQueueNamingRemoteCUPS DNS-SD
        LocalQueueNamingRemoteCUPS MakeModel
        LocalQueueNamingRemoteCUPS RemoteName
        LocalQueueNamingIPPPrinter DNS-SD
        LocalQueueNamingIPPPrinter MakeModel
```

**Set DNSSDBasedDeviceURIs to "Yes" if cups-browsed should use** **DNS-SD-service-name-based device URIs for its local queues, as CUPS** **also does. These queues use the DNS-SD service name of the** **discovered printer. With this the URI is independent of network** **interfaces and ports, giving reliable connections to always the same** **physical device. This setting is the default.**

**Set DNSSDBasedDeviceURIs to "No" if cups-browsed should use the** **conventional host-name/IP-based URIs.**

**Note that this option has only influence on URIs for printers** **discovered via DNS-SD, not via BrowsePoll.** **Those printers get always assigned the conventional URIs.**

```
        DNSSDBasedDeviceURIs Yes
```

**Set IPBasedDeviceURIs to "Yes" if cups-browsed should create its local** **queues with device URIs with the IP addresses instead of the host** **names of the remote servers. This mode is there for any problems with** **host name resolution in the network, especially also if avahi-daemon** **is only run for printer discovery and already stopped while still** **printing. By default this mode is turned off, meaning that we use URIs** **with host names.**

**Note that the IP addresses depend on the network interface through** **which the printer is accessed. So do not use IP-based URIs on systems** **with many network interfaces and where interfaces can appear and** **disappear frequently.**

**This mode could also be useful for development and debugging.**

**If you prefer IPv4 or IPv6 IP addresses in the URIs, you can set** **IPBasedDeviceURIs to "IPv4" to only get IPv4 IP addresses or** **IPBasedDeviceURIs to "IPv6" to only get IPv6 IP addresses.**

```
        IPBasedDeviceURIs No
        IPBasedDeviceURIs Yes
        IPBasedDeviceURIs IPv4
        IPBasedDeviceURIs IPv6
```

**Set CreateRemoteRawPrinterQueues to "Yes" to let cups-browsed also** **create local queues pointing to remote raw CUPS queues. Normally,** **only queues pointing to remote queues with PPD/driver are created** **as we do not use drivers on the client side, but in some cases** **accessing a remote raw queue can make sense, for example if the** **queue forwards the jobs by a special backend like Tea4CUPS.**

```
        CreateRemoteRawPrinterQueues Yes
```

**cups-browsed by default creates local print queues for each shared** **CUPS print queue which it discovers on remote machines in the local** **network(s). Set CreateRemoteCUPSPrinterQueues to "No" if you do not** **want cups-browsed to do this. For example you can set cups-browsed** **to only create queues for IPP network printers setting** **CreateIPPPrinterQueues not to "No" and CreateRemoteCUPSPrinterQueues** **to "No".**

```
        CreateRemoteCUPSPrinterQueues No
```

**Set CreateIPPPrinterQueues to "All" to let cups-browsed discover IPP** **network printers (native printers, not CUPS queues) with known page** **description languages (PWG Raster, PDF, PostScript, PCL XL, PCL** **5c/e) in the local network and auto-create print queues for them.**

**Set CreateIPPPrinterQueues to "Everywhere" to let cups-browsed** **discover IPP Everywhere printers in the local network (native** **printers, not CUPS queues) and auto-create print queues for them.**

**Set CreateIPPPrinterQueues to "AppleRaster" to let cups-browsed** **discover Apple Raster printers in the local network (native** **printers, not CUPS queues) and auto-create print queues for them.**

**Set CreateIPPPrinterQueues to "Driverless" to let cups-browsed** **discover printers designed for driverless use (currently IPP** **Everywhere and Apple Raster) in the local network (native printers,** **not CUPS queues) and auto-create print queues for them.**

**Set CreateIPPPrinterQueues to "LocalOnly" to auto-create print** **queues only for local printers made available as IPP printers. These** **are for example IPP-over-USB printers, made available via** **[ippusbxd(8)](/ippusbxd/8.md). This is the default.**

**Set CreateIPPPrinterQueues to "No" to not auto-create print queues** **for IPP network printers.**

**The PPDs are auto-generated by cups-browsed based on properties of the** **printer polled via IPP. In case of missing information, info from the** **Bonjour record is used as last mean for the default values.**

**This functionality is primarily for mobile devices running** **CUPS to not need a printer setup tool nor a collection of printer** **drivers and PPDs.**

```
        CreateIPPPrinterQueues No
        CreateIPPPrinterQueues LocalOnly
        CreateIPPPrinterQueues Everywhere
        CreateIPPPrinterQueues AppleRaster
        CreateIPPPrinterQueues Everywhere AppleRaster
        CreateIPPPrinterQueues Driverless
        CreateIPPPrinterQueues All
```

**The NewIPPPrinterQueuesShared directive determines whether a print** **queue for a newly discovered IPP network printer (not remote CUPS** **queue) will be shared to the local network or not. This is only** **valid for newly discovered printers. For printers discovered in an** **earlier cups-browsed session, cups-browsed will remember whether the** **printer was shared, so changes by the user get conserved. Default is** **not to share newly discovered IPP printers.**

```
        NewIPPPrinterQueuesShared Yes
```

**How to handle the print queues cups-browsed creates when cups-browsed** **is shut down:**

**"KeepGeneratedQueuesOnShutdown No" makes the queues being** **removed. This makes sense as these queues only work while cups-browsed** **is running. cups-browsed has to determine to which member printer of a** **cluster to pass on the job.**

**"KeepGeneratedQueuesOnShutdown Yes" (the default) makes the queues not** **being removed. This is the recommended setting for a system where** **cups-browsed is permanently running and only stopped for short times** **(like log rotation) or on shutdown. This avoids the re-creation of the** **queues when cups-browsed is restarted, which often causes a clutter of** **CUPS notifications on the desktop.**

```
        KeepGeneratedQueuesOnShutdown No
```

**If there is more than one remote CUPS printer whose local queue** **would get the same name and AutoClustering is set to "Yes" (the** **default) only one local queue is created which makes up a** **load-balancing cluster of the remote printers which would get this** **queue name (implicit class). This means that when several jobs are** **sent to this queue they get distributed between the printers, using** **the method chosen by the LoadBalancing directive.**

**Note that the forming of clusters depends on the naming scheme for** **local queues created by cups-browsed. If you have set** **LocalQueueNamingRemoteCUPS to "DNSSD" you will not get automatic** **clustering as the DNS-SD service names are always unique. With** **LocalQueueNamingRemoteCUPS set to "RemoteName" local queues are** **named as the CUPS queues on the remote servers are named and so** **equally named queues on different servers get clustered (this is how** **CUPS did it in version 1.5.x or older). LocalQueueNamingRemoteCUPS** **set to "MakeModel" makes remote printers of the same model get** **clustered. Note that then a cluster can contain more than one queue** **of the same server.**

**With AutoClustering set to "No", for each remote CUPS printer an** **individual local queue is created, and to avoid name clashes when** **using the LocalQueueNamingRemoteCUPS settings "RemoteName" or** **"MakeModel" "@\<server name\>" is added to the local queue name.**

**Only remote CUPS printers get clustered, not IPP network printers or** **IPP-over-USB printers.**

```
        AutoClustering Yes
        AutoClustering No
```

**Load-balancing printer cluster formation can also be manually** **controlled by defining explicitly which remote CUPS printers should** **get clustered together.**

**This is done by the "Cluster" directive:**

```
        Cluster <QUEUENAME>: <EXPRESSION1> <EXPRESSION2> ...
        Cluster <QUEUENAME>
```

**If no expressions are given, \<QUEUENAME\> is used as the first and** **only expression for this cluster.**

**Discovered printers are matched against all the expressions of all** **defined clusters. The first expression which matches the discovered** **printer determines to which cluster it belongs. Note that this way a** **printer can only belong to one cluster. Once matched, further** **cluster definitions will not checked any more.**

**With the first printer matching a cluster's expression a local queue** **with the name \<QUEUENAME\> is created. If more printers are** **discovered and match this cluster, they join the cluster. Printing** **to this queue prints to all these printers in a load-balancing** **manner, according to to the setting of the LoadBalancing directive.**

**Each expression must be a string of characters without spaces. If** **spaces are needed, replace them by underscores ('\_').**

**An expression can be matched in three ways:**

```
    1. By the name of the CUPS queue on the remote server
    2. By make and model name of the remote printer
    3. By the DNS-SD service name of the remote printer
```

**Note that the matching is done case-insensitively and any group of** **non-alphanumerical characters is replaced by a single underscore.**

**So if an expression is "HP\_DeskJet\_2540" and the remote server** **reports "hp Deskjet-2540" the printer gets matched to this cluster.**

**If "AutoClustering" is not set to "No" both your manual cluster** **definitions will be followed and automatic clustering of** **equally-named remote queues will be performed. If a printer matches** **in both categories the match to the manually defined cluster has** **priority. Automatic clustering of equally-named remote printers is** **not performed if there is a manually defined cluster with this name** **(at least as the printers do not match this cluster).**

**Examples:**

**To cluster all remote CUPS queues named "laserprinter" in your local** **network but not cluster any other equally-named remote CUPS printers** **use (Local queue will get named "laserprinter"):**

```
        AutoClustering No
        Cluster laserprinter
```

**To cluster all remote CUPS queues of HP LaserJet 4050 printers in a** **local queue named "LJ4050":**

```
        Cluster LJ4050: HP_LaserJet_4050
```

**As DNS-SD service names are unique in a network you can create a** **cluster from exactly specified printers (spaces replaced by** **underscores):**

```
        Cluster hrdep: oldlaser_@_hr-server1 newlaser_@_hr-server2
```

**The LoadBalancing directive switches between two methods of handling** **load balancing between equally-named remote queues which are** **represented by one local print queue making up a cluster of them** **(implicit class).**

**The two methods are:**

**Queuing of jobs on the client (LoadBalancing QueueOnClient):**

**Here we queue up the jobs on the client and regularly check the** **clustered remote print queues. If we find an idle queue, we pass** **on a job to it.**

**This is also the method which CUPS uses for classes. Advantage is a** **more even distribution of the job workload on the servers** **(especially if the printing speed of the servers is very different),** **and if a server fails, there are not several jobs stuck or** **lost. Disadvantage is that if one takes the client (laptop, mobile** **phone, ...) out of the local network, printing stops with the jobs** **waiting in the local queue.**

**Queuing of jobs on the servers (LoadBalancing QueueOnServers):**

**Here we check the number of jobs on each of the clustered remote** **printers and send an incoming job immediately to the remote printer** **with the lowest amount of jobs in its queue. This way no jobs queue** **up locally, all jobs which are waiting are waiting on one of the** **remote servers.**

**Not having jobs waiting locally has the advantage that we can take** **the local machine from the network and all jobs get printed.** **Disadvantage is that if a server with a full queue of jobs goes** **away, the jobs go away, too.**

**Default is queuing the jobs on the client as this is what CUPS does** **with classes.**

```
        LoadBalancing QueueOnClient
        LoadBalancing QueueOnServers
```

**With the DefaultOptions directive one or more option settings can be** **defined to be applied to every print queue newly created by** **cups-browsed. Each option is supplied as one supplies options with the** **"-o" command line argument to the "lpadmin" command (Run "man lpadmin"** **for more details). More than one option can be supplied separating the** **options by spaces. By default no option settings are pre-defined.**

**Note that print queues which cups-browsed already created before** **remember their previous settings and so these settings do not get** **applied.**

```
        DefaultOptions Option1=Value1 Option2=Value2 Option3 noOption4
```

**The AutoShutdown directive specifies whether cups-browsed should** **automatically terminate when it has no local raw queues set up** **pointing to any discovered remote printers or no jobs on such queues** **depending on AutoShutdownOn setting (auto shutdown** **mode). Setting it to "On" activates the auto-shutdown mode, setting it** **to "Off" deactivates it (the default). The special mode "avahi" turns** **auto shutdown off while avahi-daemon is running and on when** **avahi-daemon stops. This allows running cups-browsed on-demand when** **avahi-daemon is run on-demand.**

```
        AutoShutdown Off
        AutoShutdown On
        AutoShutdown avahi
```

**The AutoShutdownOn directive determines what event cups-browsed** **considers as inactivity in auto shutdown mode. "NoQueues" (the** **default) means that auto shutdown is initiated when there are no** **queues for discovered remote printers generated by cups-browsed any** **more. "NoJobs" means that all queues generated by cups-browsed are** **without jobs.**

```
        AutoShutdownOn NoQueues
        AutoShutdownOn NoJobs
```

**DebugLogFileSize defines the maximum size possible (in KBytes)** **of the log files (cups-browsed\_log and cups-browsed\_previous\_logs)** **that is created using cups-browsed in the debugging mode.** **Setting its value to 0 would turn off any restriction** **on the size of the file.**

```
        DebugLogFileSize 300
```

**The AutoShutdownTimeout directive specifies after how many seconds** **without local raw queues set up pointing to any discovered remote** **printers or jobs on these queues cups-browsed should actually shut** **down in auto shutdown mode. Default is 30 seconds, 0 means immediate** **shutdown.**

```
        AutoShutdownTimeout 20
```

**NotifLeaseDuration defines how long the D-BUS subscription created by cups-browsed** **in cupsd will last before cupsd cancels it. The default value is 1 day** **in seconds - 86400. The subscription renewal is set to happen after half of** **NotifLeaseDuration passed. The D-BUS notifications are used for watching over queues** **and doing specific actions when a D-BUS notification comes.**

```
        NotifLeaseDuration 86400
```

**FrequentNetifUpdate turns on/off the network interface update routines** **which happen for each found entry, which can slow up cups-browsed significantly** **if we are on a network with many shared printers or if we use BrowsePoll to a server** **with many queues. Network interface updates after receiving D-BUS notification** **from NetworkManager won't be turned off with the directive. The default value** **is 'Yes'.**

```
        FrequentNetifUpdate Yes
```

## SEE ALSO

**[cups-browsed(8)](/cups-browsed/8.md)**

**/usr/share/doc/cups-browsed/README.gz**

## AUTHOR

**The authors of cups-browsed are listed in /usr/share/doc/cups-browsed/AUTHORS.**

**This manual page was written for the Debian Project, but it may be used by others.**
