2010-03-03 13:25:43 +0000 2010-03-03 13:25:43 +0000
47
47

Como retomar a impressora CUPS a partir da linha de comando?

Tenho uma impressora no CUPS que, devido a problemas com o condutor (HP 1010), de vez em quando entra em pausa.

Gostaria de escrever um script de shell que será executado uma vez por hora para retomar uma impressora no CUPS. Mas não faço ideia depois de pesquisar no Google durante alguns minutos como retomar a impressora a partir da linha de comandos shell.

Respostas (9)

68
68
68
2010-03-03 16:36:51 +0000

Aí está o comando cupsenable.

cupsenable printer

inicia uma impressora desactivada (para descobrir o nome da impressora pode listar as suas impressoras com lpstat -p ou lpc status).

Poderá ter de executar o comando como raiz ou através do sudo. Assim, se tiver de activar a impressora num script shell, terá de adicionar a shell à crontab do root, ou editar o seu ficheiro sudoers.

6
6
6
2012-10-10 07:42:50 +0000

A minha impressora é HP CP1215 também teve um erro: Printer Paused - “/usr/lib/cups/backend/hp failed”

Depois de reiniciar ambas as impressoras cups e avahi-daemon e de identificar a impressora com lpstat -p e de activar com cupsenable, consegui imprimir novamente. Reiniciar apenas com cups e activar não fez o truque.

também alterei a política padrão para retry-job e finalmente acabei por evitar erros no futuro com o cronjob:

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

onde poissa käytöstä é texto de localização finlandês para manutenção “fora de ordem” e HP_Tuloostin é o nome da minha impressora.

Na minha experiência tanto a política padrão como a política actual da impressora devem ser configuradas para serem retransferidas. A política por defeito é apenas a política que se obtém quando se instala uma nova impressora.

2
2
2
2014-01-27 18:33:06 +0000
ls /etc/cups/ppd/ |cut -d "." -f1 |grep -v VMware |xargs -i cupsenable {}

Isto lista todos os ficheiros ppd que representam uma impressora instalada, corta a extensão ppd, ignora um ppd VMware incluído em muitos servidores VMware (se não precisar disto basta remover |grep -v VMware), e passa os outros nomes para xargs que não usa todas as impressoras.

Um trabalho de cron deverá fazer com que isto funcione bem.

1
1
1
2015-08-25 10:30:16 +0000

Se o problema se deve ao facto de a GUI exigir um login para retomar a impressora, então outra solução é permitir o reinício da impressora através da GUI sem um login. Para o fazer, desligar os copos e editar 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 Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel- Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>

E remover a directiva Resume-Printer, depois reiniciar os copos. Se a directiva aparecer em mais do que uma secção <Limit>, então pode removê-la da secção <Policy> relevante ou removê-la de todas. Deverá agora ser capaz de retomar a impressora sem um login a partir da GUI. Eu vi isto em macworld mas aplica-se a qualquer copo instalado.

1
1
1
2015-09-07 12:14:32 +0000
0
0
0
2016-10-08 23:57:22 +0000

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

Se estiver a usar Debian 8.6, Cinnamon 2.2.16 (Linux) faça isto a partir do seu menu inicial do GUI:

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

Para Ubuntu* 16.04:

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

Isto abre o solucionador de problemas de impressão. Dir-lhe-á o que deve fazer a seguir.

Provavelmente só terá de verificar a propriedade Habilitado para a sua impressora CUPS nas suas Definições de Impressão. (Terá de desbloquear primeiro).

Finalmente, para evitar que isto volte a acontecer, altere a “política” da impressora para “retry-job” na configuração da impressora acima mencionada (nas propriedades | políticas).

Fixou-a para mim!

O que causa este problema: Se a minha impressora wifi estiver desligada quando imprimo para uma impressora CUPS PRINTER, e a minha política for “parar impressora”, então recebo uma mensagem que não consegui imprimir e a impressora está desactivada (Activada está desmarcada). Só se a política for definida para “tentar novamente o trabalho” é que a opção Enabled não será desmarcada. Alguns minutos após a impressora ser ligada, os seus trabalhos começarão a ser impressos.

(My other post about this.)

0
0
0
2018-11-03 18:15:11 +0000

Tive de lidar com o mesmo disparate do CUPS aqui… A solução para mim foi um guião de sistema que corre a cada n minutos.

/usr/local/cups/enable_cups_printers.sh

#!/bin/sh
for printer in $(lpstat -v | perl -pe 's/device for ([A-Za-z0-9_]+):.*//g')
do
    echo "Forcely enabling printer: $printer"
    # Enable:-E PrinterId:-p
    /usr/bin/lpadmin -E -p "$printer"
done

cups.enable.printers.service

[Unit]
Description = Forcely enable printer occassionally. Why CUPS disables printers in the first place has yet to be determined.

[Service]
Type = simple
ExecStart = /usr/local/cups/enable_cups_printers.sh

[Install]
WantedBy = multi-user.wants

cups.enable.printers.timer

[Unit]
Description=Run enable printers frequently to ensure connection difficulties are remedied.

[Timer]
OnBootSec=15min
OnUnitActiveSec=300

[Install]
WantedBy = timers.target
0
0
0
2012-02-13 10:28:39 +0000

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

-1
-1
-1
2010-04-12 11:16:08 +0000

Como outros já disseram, ‘cupsenable’ ou ‘lpadmin -E’ devem fazer o truque.

Uma questão relacionada é o IIRC que, por defeito, o CUPS configura a impressora de tal forma que se a impressão de um trabalho falhar de alguma forma, a impressora é desactivada. Em vez disso, pode alterar isto para abortar o trabalho.