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

Come riprendere la stampante CUPS dalla riga di comando?

Ho una stampante in CUPS che a causa di problemi di driver (HP 1010) di tanto in tanto va in pausa.

Vorrei scrivere uno script di shell che venga eseguito una volta all'ora per riprendere una stampante in CUPS. Ma non ho idea, dopo aver cercato su Google per un paio di minuti, di come riprendere la stampante dalla riga di comando della shell.

Risposte (9)

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

C'è il comando cupsenable.

cupsenable printer

avvia una stampante disabilitata (per scoprire il nome della stampante puoi elencare le tue stampanti con lpstat -p o lpc status).

Potreste dover eseguire il comando come root o tramite sudo. Quindi se dovete abilitare la stampante in uno script di shell, dovrete aggiungere la shell al crontab di root, o modificare il vostro file sudoers.

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

La mia stampante è HP CP1215 aveva anche un errore: Printer Paused - “/usr/lib/cups/backend/hp failed”

Dopo aver riavviato sia cups che avahi-daemon e aver identificato la stampante con lpstat -p e abilitato con cupsenable, sono riuscito a stampare di nuovo. Riavviando solo cups e abilitando non ha funzionato.

Ho anche cambiato la politica di default in retry-job e alla fine ho finito per evitare errori in futuro con cronjob:

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

dove poissa käytöstä è il testo di localizzazione finlandese per manutenzione “out of order” e HP_Tuloostin è il nome della mia stampante.

Nella mia esperienza sia la default-policy che le policy attuali della stampante dovrebbero essere configurate per essere retry-job. La politica di default è solo la politica che si ottiene quando si installa una nuova stampante.

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

Questo elenca tutti i file ppd che rappresentano una stampante installata, taglia l'estensione ppd, ignora un ppd VMware incluso in molti server VMware (se non ti serve questo rimuovi semplicemente |grep -v VMware), e passa gli altri nomi a xargs che mette in pausa tutte le stampanti.

Un lavoro di cron dovrebbe farlo funzionare bene.

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

Se il problema è dovuto al fatto che la GUI richiede un login per riprendere la stampante, allora un'altra soluzione è quella di permettere il ripristino della stampante tramite la GUI senza un login. Per fare ciò spegnete cups e modificate questa linea 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 rimuovere la direttiva Resume-Printer, quindi riavviare cups. Se la direttiva appare su più di una sezione <Limit> allora potete rimuoverla dalla sezione <Policy> pertinente o rimuoverla da tutte. Ora dovresti essere in grado di riprendere la stampante senza un login dalla GUI. Ho visto questo su macworld ma si applica a qualsiasi installazione di cups.

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

Un sacco di soluzioni qui non hanno funzionato per me, (ad esempio sudo cupsenable e lpadmin -E).

Se state usando Debian 8.6, Cinnamon 2.2.16 (Linux) fatelo dal vostro menu di avvio 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.

Per Ubuntu 16.04:

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

Questo apre il risolutore di problemi di stampa. Vi dirà cosa fare dopo.

Probabilmente dovrete solo controllare la proprietà Enabled per la vostra stampante CUPS nelle vostre Print Settings. (Dovrai prima sbloccare).

Infine, per evitare che questo accada di nuovo, cambia la “policy” della stampante in “retry-job” nella configurazione della stampante di cui sopra (sotto proprietà | policy).

Ho risolto il problema!

Cosa causa questo problema: Se la mia stampante wifi è spenta quando stampo su una stampante CUPS, e la mia policy è “stop printer”, allora ricevo un messaggio che non ho potuto stampare e la stampante è disabilitata (Enabled è deselezionata). Solo se la policy è impostata su “retry job”, Enabled non sarà deselezionata. Pochi minuti dopo che la stampante è stata riaccesa, i vostri lavori cominceranno a stampare.

(Il mio altro post su questo.)

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

Ho avuto a che fare con la stessa assurdità di CUPS qui… La soluzione per me era uno script systemd che viene eseguito ogni n minuti.

/usr/local/cups/enablecupsprinters.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

Come altri hanno già detto, ‘cupsenable’ o ‘lpadmin -E’ dovrebbero fare il trucco.

Un problema correlato è che per default CUPS configura la stampante in modo tale che se la stampa di un lavoro fallisce in qualche modo, la stampante viene disabilitata. Si può cambiare questo per interrompere il lavoro invece.