CUPS: mensagem “Too many open files”

2

Eu tenho um pequeno servidor Linux (Ubuntu Server, 12.04 LTS) que serve como servidor de liberação de impressão. Essencialmente, defini uma impressora CUPS e adicionei Option job-hold-until indefinite à entrada no printers.conf para que os convidados da biblioteca possam pagar em dinheiro pelas impressões, e alguém na mesa pode clicar em "Liberar trabalho" na interface da web do CUPS para envie para a impressora.

O problema é que periodicamente a interface web do CUPS parará de responder. O log de erros será preenchido com mensagens como esta:

E [10/Sep/2013:13:28:04 -0500] Unable to create certificate file /var/run/cups/certs/0 - Too many open files
E [10/Sep/2013:13:28:04 -0500] [CGI] Unable to create pipe for /usr/lib/cups/cgi-bin/jobs.cgi - Too many open files
E [10/Sep/2013:13:28:04 -0500] Unable to create certificate file /var/run/cups/certs/0 - Too many open files

A maior parte das mensagens tem a ver com arquivos que têm a ver com criptografia SSL para a interface da web. Parece que está abrindo-as e nunca fechando-as, até que ela comece a exibir o erro "Muitos arquivos abertos".

Nós realmente não precisamos de criptografia SSL para isso. Já está bloqueado para apenas IPs para computadores da equipe dentro do prédio. Então, da primeira vez que isso aconteceu, eu tentei desativar o SSL completamente adicionando DefaultEncryption Never ao cupsd.conf. Podemos acessar a interface da web sem o SSL agora, mas o problema ocorreu hoje de qualquer maneira.

Então ... como persuadir o CUPS a 1) fechar os arquivos quando terminar com eles, ou B) não abri-los em primeiro lugar?

    
por Will Martin 10.09.2013 / 20:57

1 resposta

0

Mais pesquisas indicaram que este problema foi causado pelo AppArmor, um mecanismo de segurança do Ubuntu. Isso estava interferindo no acesso habitual do CUPS, e o CUPS não sabia o que fazer sobre isso. Para resolver o problema, desativei o perfil do CUPS no AppArmor:

sudo ln -s /etc/apparmor.d/usr.sbin.cupsd /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.cupsd
    
por 12.09.2013 / 23:34