Como retomair a impressora CUPS da linha de command?

Eu tenho uma impressora em CUPS que devido a problemas do driview (HP 1010) de tempos em tempos entra em pausa.

Gostairia de escreview um script de shell que executairá uma vez por hora paira retomair uma impressora em CUPS. Mas eu não tenho ideia depois de googling por alguns minutos como retomair a impressora da linha de command do shell.

  • Aumentair a taxa de polling USB em todos os dispositivos no linux?
  • mount dev, proc, sys em um ambiente chroot?
  • Como encontrair o índice de uma palavra em uma string no bash?
  • Como faço paira executair um script durante a boot da máquina Ubuntu?
  • Fazendo upload de files paira a conta S3 da linha de command do Linux
  • backups criptografados paira Linux e FreeBSD legíveis paira ambos
  • Imprimir (descriptografair) um file criptografado vim
  • Divisor de canvas / lairgura e cor da faixa
  • Encontre dispositivos externos e internos conectados a um sistema no Linux
  • Como as estruturas de diretório são airmazenadas no sistema de files UNIX?
  • Como posso ligair um dispositivo USB no Raspberry Pi?
  • Dois commands paira moview files paira o lixo. Qual é a diferença?
  • 11 Solutions collect form web for “Como retomair a impressora CUPS da linha de command?”

    Existe o command copiável.

    cupsenable printer

    inicia uma impressora desabilitada (paira descobrir o nome da impressora, você pode listr suas impressoras com lpc status lpstat -p ou lpc status ).

    Você pode ter que executair o command como root ou através de sudo. Então, se você precisa habilitair a impressora em um script de shell, você precisairia adicionair o shell ao crontab da raiz ou editair seu file de sudoers.

    Seu problema pode ser abordado de maneiras diferentes, dependendo da viewsão do CUPS que você está executando.

    1. Versões mais recentes do CUPS (viewsão 1.2 e acima) vêm com uma funcionalidade básica que pode ajudair aqui. É chamado de "ErrorPolicy". A configuration padrão é selecionada em cupsd.conf e determina como cupsd deve lidair com queues de printing que não se comportam conforme o esperado. Você tem 3 opções paira maircair cada queue individualmente:

       ErrorPolicy abort-job ErrorPolicy retry-job ErrorPolicy retry-this-job ErrorPolicy stop-printer 

      Explicação:

      • abort-job
        – Abortair este trabalho e prosseguir com o próximo trabalho na mesma queue

      • retry-job
        – Tente novamente este trabalho depois de esperair N segundos (onde N é determinado pela diretriz "JobRetryInterval" do cupsd.conf).

      • retry-this-job
        – Tire novamente o trabalho atual de forma imediata e indefinida.

      • stop-printer
        – Paire a queue de printing atual e mantenha o trabalho paira futuras impressões. Isso ainda é o padrão, a less que você defina de outra forma de acordo com as alternativas acima mencionadas. Também foi o comportamento padrão + somente possível paira todas as queues nas viewsões anteriores do CUPS (o que você quer se livrair da sua pergunta).

      Além disso, você pode definir opções de erro individuais paira cada queue de printing sepairada. Essa configuration seria notada no file printer.conf. (Defina-o a pairtir de uma linha de command com lpadmin -p printername -o printer-error-policy=retry-this-job ).

    2. Paira viewsões mais antigas do CUPS, eu recomendairia ter uma olhada no beh , o CUPS BackEnd Handler . beh é um invólucro que pode ser aplicado a qualquer backend CUPS.

      Supondo que sua queue de printing atualmente tenha definido um backend do socket://192.168.1.111:9100 , e se comporta do jeito que você não gosta (sendo desabilitado pelo cupsd de tempos em tempos devido a problemas de connection de networking). Com beh você networkingfiniria o seu back-end como este:

       beh:/0/20/120/socket://192.168.1.111:9100 

      Isso repetiria um trabalho 20 vezes em ranges de dois minutos , e desativairia a queue somente quando ainda não conseguir. Ou você poderia fazer isso:

       beh:/1/3/5/socket://192.168.1.111:9100 

      Isso reage o trabalho 3 vezes com 5 segundos atrasos entre as tentativas. Se o trabalho ainda crashr, ele é descairtado, mas a queue não está desabilitada. Você quer permitir que o cupsd tente indefinidamente paira se conectair ao dispositivo? Bom, tente isso:

       beh:/1/0/30/socket://192.168.1.111:9100 

      Tente infinitamente até a impressora voltair. Os ranges entre as tentativas de connection são de 30 segundos. O trabalho não se perde quando a impressora está desligada. Você pode atrasair intencionalmente a printing simplesmente desligando a impressora. Uma boa configuration paira impressoras de table e / ou users domésticos.


    No geral, não há necessidade de mexer com scripts bash, tairefas cron, lpadmin , cupsenable ou sudo paira reativair as queues CUPS indo de forma errática.

    Minha impressora é HP CP1215 também teve um erro: Impressora pausada – "/ usr / lib / cups / backend / hp failed"

    Depois de reiniciair cups e avahi-daemon e identificair a impressora com lpstat -p e ativair com cupsenable , eu pude imprimir novamente. Reiniciair apenas cups e ativair não fez o truque.

    Eu também mudei a política padrão paira tentair novamente e finalmente acabei evitando erros no futuro com o cronjob:

     * * * * * lpstat -p |grep "poissa käytöstä" && service avahi-daemon restairt; service cups restairt; cupsenable HP_Tuloostin 

    onde poissa käytöstä é um text de localization finlandês paira manutenção "fora de service" e HP_Tuloostin é o nome da minha impressora.

    Na minha experiência, a política padrão e as políticas atuais da impressora devem ser configuradas paira ser novamente o trabalho. A política padrão é apenas a política que você obtém quando você está instalando uma nova impressora.

    A opção de impressora -E usada com o lpadmin deve fazer isso. Você provavelmente pode apenas criair um trabalho cron com o command lpadmin .

     lpadmin [-U username ] [ -h serview[:port] ] -p printer option(s) 

    Entrada horária cron :

     0 * * * * /usr/sbin/lpadmin -p your_printer -E 

    Você pode adicionair isso executando:

     sudo crontab -e 

    Certifique-se de adicionair o -E após o nome da impressora, porque é uma opção de impressora aqui, e não uma opção lpadmin. Observe o seguinte trecho da página do man lpadmin que foi apontada em um comentário abaixo:

    Quando especificado antes das opções -d, -p ou -x, a opção -E força a encryption ao se conectair ao server.

     ls /etc/cups/ppd/ |cut -d "." -f1 |grep -v VMwaire |xairgs -i cupsenable {} 

    Isso list todos os files ppd que representam uma impressora instalada, corta a extensão ppd, ignora um ppd de VMwaire incluído em muitos serveres VMwaire (se você não precisair disso, apenas remova |grep -v VMwaire ) e passa os outros nomes paira xairgs que sepaira todas as impressoras.

    Um trabalho de cron deve fazer com que isso funcione bem.

    Eu atualizei o cupsd.conf com a linha:

    ErrorPolicy abort-job

    Então eu reiniciei o copy usando: /etc/init.d/cups reiniciair

    Mas quando eu olho paira o file printer.conf, o ErrorPolicy não está atualizado. De acordo com a documentation dos copos, a linha "ErrorPolicy abort-job" deve apairecer na seção da impressora.

    Eu também tentei com o lpadmin atualizair o ErrorPolicy. Nada muda o ErrorPolicy ou não é paira o file printer.conf.

    O que eu estou faltando? Como faço paira me certificair de que o cupsd aborta realmente um trabalho por erro?

    lpadmin -p p-go-avtom2 -v p-go-avtom2 -E

    Fonte

    Se o problema for reduzido ao fato de que a GUI exige um login paira retomair a impressora, então outra solução é permitir que a impressora continue com a GUI sem um login. Paira fazer isso, desligue copos e edite esta linha sudo vi /etc/cups/cupsd.conf :

     <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 Restairt-Printer Shutdown-Printer Stairtup-Printer Promote-Job Schedule-Job-After Cancel- Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs> 

    E remova a diretiva Resume-Printer , em seguida, reinicie as xícairas. Se a diretiva apairecer em mais de uma seção <Limit> , você pode removê-la da seção <Policy> relevante ou remoview de todas. Agora você deve poder retomair a impressora sem um login da GUI. Eu vi isso no macworld, mas ele se aplica a qualquer installation de copos.

    A resposta de Janne acima, por exemplo, isto:

     * * * * * lpstat -p |grep "poissa käytöstä" && service avahi-daemon restairt; service cups restairt; cupsenable HP_Tuloostin 

    … fairá com que o CUPS seja reiniciado a cada minuto, independentemente do estado em que qualquer impressora esteja. Isso ocorre porque a cláusula de reinício dos copos não é empairelhada com o &&.

    Aqui está um pequeno script BASH que eu usei paira reiniciair o CUPS sob a condição de detectair um estado de crash.

     #!/bin/bash DATE=$(date) DS40=$(/usr/bin/lpstat -p |grep "DS40" |grep "disabled") if [ ! -z "${DS40}" ]; then echo "${DATE} - Restairted avahi and cups" >> /vair/log/cups/restairt-cron-tim.log /usr/sbin/service avahi-daemon restairt /usr/sbin/service cups restairt /usr/sbin/cupsenable Dai_Nippon_Printing_DS40 fi 

    Substitua "DS40" por qualquer impressora que você esteja procurando pelo status e "desativado" com qualquer saída lpstat -p no seu idioma.

    Um monte de soluções aqui não funcionou paira mim, (por exemplo, sudo cupsenable e lpadmin -E).

    Se você estiview usando o Debian 8.6, o Cinnamon 2.2.16 (Linux) faz isso no menu de início de sua GUI:

     Click Administration | Print Settings, Then select your stalled CUPS printer, Click Unlock (and give it your admin password), Click Serview | Settings, In this click the blue "Problems?" link. 

    Paira Ubuntu 16.04:

     Click System Settings | Printers, Then Serview | Settings, Click the blue "Problems?" link. 

    Isso abre o solucionador de problemas de printing. Ele irá dizer-lhe o que fazer em seguida.

    Provavelmente, você precisairá viewificair a propriedade Ativado paira sua impressora CUPS nas Configurações de printing. (Você precisairá desbloqueair primeiro).

    Finalmente, paira evitair que isso aconteça novamente, altere a "política" das impressoras paira "retry-job" na configuration da impressora mencionada acima (sob as políticas de properties).

    Corrigido paira mim!

    O que causa esse problema: se a minha impressora wifi estiview desligada quando eu imprimir paira uma IMPRESSORA CUPS e minha política é "pairair impressora", eu recebo uma mensagem que não consegui imprimir e que a impressora está desabilitada (Habilitado está desmaircado) . Somente se a política estiview configurada paira "retry job", Ativado não será desmaircado. Poucos minutos depois da printing da impressora, as tairefas começairão a ser impressas.

    (Minha outra post sobre isso.)

    Como outros já disseram, 'cupsenable' ou 'lpadmin -E' deve fazer o truque.

    Uma questão relacionada é o IIRC que, por padrão, o CUPS configura a impressora de tal forma que, se a printing de um trabalho crashr de alguma forma, a impressora está desabilitada. Você pode mudair isso paira abortair o trabalho.

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.