Estou em um mundo de dor no momento em relação à impressão, mas descobri um problema ultra-específico que parece ser a raiz de todos os meus outros problemas.
O CUPS está silenciosamente não compartilhando minhas impressoras. Eu paro o CUPS, altero manualmente /etc/cups/printers.conf para dizer "Shared Yes" para cada impressora, inicio o CUPS e dentro de ~ 2 minutos O arquivo printers.conf é reescrito.
Eu não posso explicar esse comportamento.
Eu tentei usar outros métodos (isto é: em vez de editar diretamente o printers.conf) para compartilhar as impressoras, como:
cupsctl --share-printers
lpadmin -p SPDIALTO35501 -o printer-is-shared=true
Eles parecem não ter efeito algum.
Alguém pode me ajudar? Eu incluí o máximo possível de detalhes úteis sobre o meu ambiente e configuração.
lpoptions -p SPDIALTO35501 saída:
auth-info-required=none copies=1 device-uri=lpd://192.168.7.5
finishings=3 job-hold-until=no-hold job-priority=50
job-sheets=none,none marker-change-time=1429565893
marker-colors=#000000,none,none,none,none marker-levels=-1,-1,-1,-1,-1
marker-names='Black\ Toner,,,,Waste\ Toner'
marker-types=toner,unknown,unknown,unknown,wasteToner number-up=1
printer-info=SPDIALTO35501 printer-is-accepting-jobs=true
printer-is-shared=false printer-location
printer-make-and-model='Local Raw Printer'
printer-state=3 printer-state-change-time=1429565893
printer-state-reasons=none printer-type=2228230
printer-uri-supported=ipp://localhost:631/printers/SPDIALTO35501
SO: versão CentOS Linux 6.0 (final)
VERSÃO DOS COPOS: cups.x86_64 1: 1.4.2-35.el6
O SElinux está desativado.
Meu arquivo cupsd.conf parece correto para mim, mas confesso que não sou especialista. Aqui está:
MaxLogSize 0
LogLevel debug
SystemGroup sys root
# Allow remote access
Port 631
Listen /var/run/cups/cups.sock
# Enable printer sharing and shared printers.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseRemoteProtocols CUPS
BrowseAddress @LOCAL
BrowseLocalProtocols CUPS dnssd
DefaultAuthType Basic
<Location />
# Allow shared printing...
Order allow,deny
Allow all
</Location>
<Location /admin>
Order allow,deny
Allow ALL
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow ALL
</Location>
<Policy default>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job CUPS-Get-Document>
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit Cancel-Job CUPS-Authenticate-Job>
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
<Policy authenticated>
<Limit Create-Job Print-Job Print-URI>
AuthType Default
Order deny,allow
</Limit>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job CUPS-Get-Document>
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit Cancel-Job CUPS-Authenticate-Job>
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
Um exemplo de entrada do meu arquivo printers.conf:
<DefaultPrinter SPDIALTO35501>
Info SPDIALTO35501
DeviceURI lpd://192.168.7.5
State Idle
StateTime 1429565893
Type 6
Accepting Yes
Shared No
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-job
Attribute marker-colors \#000000,none,none,none,none
Attribute marker-levels -1,-1,-1,-1,-1
Attribute marker-names Black Toner,,,,Waste Toner
Attribute marker-types toner,unknown,unknown,unknown,wasteToner
Attribute marker-change-time 1429565893
</Printer>
EDITAR:
Foi-me perguntado se verifiquei os arquivos de log. Eu fiz, mas realmente não vejo nada significativo para mim. Aqui está uma versão ligeiramente recortada de / var / log / cups / error_log:
I [21/Apr/2015:11:27:48 -0600] Listening to 0.0.0.0:631 (IPv4)
I [21/Apr/2015:11:27:48 -0600] Listening to :::631 (IPv6)
I [21/Apr/2015:11:27:48 -0600] Listening to /var/run/cups/cups.sock (Domain)
I [21/Apr/2015:11:27:48 -0600] Remote access is enabled.
D [21/Apr/2015:11:27:48 -0600] Added auto ServerAlias vdb2
D [21/Apr/2015:11:27:48 -0600] Added auto ServerAlias localhost6.localdomain6
D [21/Apr/2015:11:27:48 -0600] Added auto ServerAlias localhost6
I [21/Apr/2015:11:27:48 -0600] Loaded configuration file "/etc/cups/cupsd.conf"
I [21/Apr/2015:11:27:48 -0600] Using default TempDir of /var/spool/cups/tmp...
I [21/Apr/2015:11:27:48 -0600] Configured for up to 100 clients.
I [21/Apr/2015:11:27:48 -0600] Allowing up to 100 client connections per host.
I [21/Apr/2015:11:27:48 -0600] Using policy "default" as the default!
I [21/Apr/2015:11:27:48 -0600] Full reload is required.
I [21/Apr/2015:11:27:48 -0600] Loaded MIME database from "/usr/share/cups/mime" and "/etc/cups": 35 types, 41 filters...
[outras impressoras cortadas; todos eles se comportam exatamente da mesma forma]
D [21/Apr/2015:11:27:48 -0600] Loading printer SPDIALTO35501...
D [21/Apr/2015:11:27:48 -0600] cupsdMarkDirty(P-----)
D [21/Apr/2015:11:27:48 -0600] load_ppd: Loading /etc/cups/ppd/SPDIALTO35501.ppd...
D [21/Apr/2015:11:27:48 -0600] cupsdRegisterPrinter(p=0x7f2af8603410(SPDIALTO35501))
D [21/Apr/2015:11:27:48 -0600] cupsdMarkDirty(P-----)
D [21/Apr/2015:11:27:48 -0600] load_ppd: Loading /etc/cups/ppd/SPDIALTO35501.ppd...
D [21/Apr/2015:11:27:48 -0600] cupsdRegisterPrinter(p=0x7f2af8603410(SPDIALTO35501))
I [21/Apr/2015:11:27:48 -0600] Loading job cache file "/var/cache/cups/job.cache"...
D [21/Apr/2015:11:27:48 -0600] [Job 38077] Loading from cache...
[muitos trabalhos, como 500ish, são carregados do cache]
I [21/Apr/2015:11:27:48 -0600] Full reload complete.
I [21/Apr/2015:11:27:48 -0600] Cleaning out old temporary files in "/var/spool/cups/tmp"...
I [21/Apr/2015:11:27:48 -0600] Listening to 0.0.0.0:631 on fd 7...
I [21/Apr/2015:11:27:48 -0600] Listening to :::631 on fd 8...
I [21/Apr/2015:11:27:48 -0600] Listening to /var/run/cups/cups.sock on fd 9...
I [21/Apr/2015:11:27:48 -0600] Resuming new connection processing...
D [21/Apr/2015:11:27:48 -0600] Discarding unused server-started event...
D [21/Apr/2015:11:27:49 -0600] Report: clients=0
D [21/Apr/2015:11:27:49 -0600] Report: jobs=499
D [21/Apr/2015:11:27:49 -0600] Report: jobs-active=0
D [21/Apr/2015:11:27:49 -0600] Report: printers=18
D [21/Apr/2015:11:27:49 -0600] Report: printers-implicit=0
D [21/Apr/2015:11:27:49 -0600] Report: stringpool-string-count=2343
D [21/Apr/2015:11:27:49 -0600] Report: stringpool-alloc-bytes=7832
D [21/Apr/2015:11:27:49 -0600] Report: stringpool-total-bytes=38128
I [21/Apr/2015:11:28:18 -0600] Saving printers.conf...
D [21/Apr/2015:11:28:18 -0600] cupsdSetBusyState: Not busy
Portanto, o CUPS parece estar reconstruindo o arquivo printers.conf, mas não tenho idéia do porquê e ainda não tenho idéia de por que o status Compartilhado de cada impressora está sendo redefinido. Quando adicionei a impressora em primeiro lugar (colando uma nova entrada em printers.conf), o CUPS não a reconstruiu, então não parece que ela está tirando a lista de impressoras de algum outro lugar. Realmente, realmente, realmente não quer compartilhar.
EDIT # 2: Eu configurei o CUPS para permitir que eu me conecte à sua interface web e tentei modificar a impressora dessa maneira - sem sorte. Eu coloquei uma marca de seleção na coluna de compartilhamento para a impressora, clicou em modificar, ele disse que modificou com sucesso, mas a impressora ainda não é compartilhada. Curiosamente, as outras alterações que fiz (definir um nome de local, escolher um tipo de driver) aparecem no arquivo printers.conf atualizado. Por alguma razão, isso não permitirá o compartilhamento - de todo.
Tags cups