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

Wie kann man den CUPS-Drucker von der Kommandozeile aus fortsetzen?

Ich habe einen Drucker in CUPS, der aufgrund von Treiberproblemen (HP 1010) von Zeit zu Zeit in die Pause geht.

Ich möchte ein Shell-Skript schreiben, das einmal pro Stunde ausgeführt wird, um einen Drucker in CUPS wieder aufzunehmen. Aber ich habe keine Ahnung, nachdem ich ein paar Minuten lang gegoogelt habe, wie man den Drucker von der Shell-Befehlszeile aus wieder aufnehmen kann.

Antworten (9)

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

Es gibt den Befehl cupsenable.

cupsenable printer

startet einen deaktivierten Drucker (um den Druckernamen herauszufinden, können Sie Ihre Drucker mit lpstat -p oder lpc status auflisten).

Möglicherweise müssen Sie den Befehl als root oder über sudo ausführen. Wenn Sie also den Drucker in einem Shell-Skript aktivieren müssen, müssten Sie die Shell zur crontab von root hinzufügen oder Ihre sudoers-Datei bearbeiten.

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

Mein Drucker ist HP CP1215 hatte auch einen Fehler: Printer Paused - “/usr/lib/cups/backend/hp failed”

Nachdem ich sowohl cups als auch avahi-daemon neu gestartet habe und den Drucker mit lpstat -p identifiziert und mit cupsenable aktiviert habe, konnte ich wieder drucken. Ein Neustart nur mit cups und die Freigabe brachten keine Besserung.

Ich änderte auch die Standardrichtlinie auf Wiederholungsjob und konnte schließlich die Fehler in Zukunft mit einem Cronjob vermeiden:

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

, wobei poissa käytöstä der finnische Lokalisierungstext für Wartung “außer Betrieb” und HP_Tuloostin der Name meines Druckers ist.

Meiner Erfahrung nach sollten sowohl die Standardrichtlinie als auch die aktuellen Druckerrichtlinien als Wiederholungsauftrag konfiguriert werden. Die Standardrichtlinie ist nur die Richtlinie, die Sie erhalten, wenn Sie einen neuen Drucker installieren.

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

Dies listet alle ppd-Dateien auf, die einen installierten Drucker repräsentieren, schneidet die ppd-Erweiterung ab, ignoriert ein VMware ppd, das auf vielen VMware-Servern enthalten ist (wenn Sie dies nicht benötigen, entfernen Sie einfach |grep -v VMware), und übergibt die anderen Namen an xargs, das alle Drucker freigibt.

Ein Cron-Job sollte dies gut funktionieren lassen.

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

Wenn das Problem darauf zurückzuführen ist, dass die grafische Benutzeroberfläche eine Anmeldung erfordert, um den Drucker fortzusetzen, besteht eine andere Lösung darin, das Fortsetzen des Druckers über die grafische Benutzeroberfläche ohne Anmeldung zu ermöglichen. Fahren Sie dazu cups herunter und bearbeiten Sie diese Zeile 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>

Und entfernen Sie die Direktive Resume-Printer, dann starten Sie cups neu. Wenn die Direktive in mehr als einem <Limit>-Abschnitt erscheint, können Sie sie aus dem entsprechenden <Policy>-Abschnitt oder aus allen entfernen. Sie sollten nun in der Lage sein, den Drucker ohne Anmeldung über die GUI wieder zu starten. Ich habe dies auf macworld gesehen, aber es gilt für jede Cups-Installation.

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

Ein paar der Lösungen hier haben bei mir nicht funktioniert (z. B. sudo cupsenable und lpadmin -E).

Wenn Sie Debian 8.6, Cinnamon 2.2.16 (Linux) verwenden, führen Sie dies über Ihr GUI-Startmenü aus:

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.

Für Ubuntu 16.04:

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

Dies öffnet die Fehlerbehebung für den Druck. Es wird Ihnen sagen, was als nächstes zu tun ist.

Wahrscheinlich müssen Sie nur die Eigenschaft “Aktiviert” für Ihren CUPS-Drucker in Ihren Druckeinstellungen überprüfen. (Sie müssen zuerst die Sperre aufheben).

Und schließlich, um zu verhindern, dass dies noch einmal passiert, ändern Sie in der oben erwähnten Druckereinrichtung (unter Eigenschaften | Richtlinien) die “Richtlinie” des Druckers auf “Wiederholungsauftrag”.

Bei mir hat es funktioniert!

Was dieses Problem verursacht: Wenn mein Wifi-Drucker ausgeschaltet ist, wenn ich auf einem CUPS-Drucker drucke, und die Richtlinie “Drucker anhalten” ist, dann erhalte ich eine Meldung, dass ich nicht drucken konnte und der Drucker deaktiviert ist (Aktiviert ist nicht markiert). Nur wenn die Richtlinie auf “Auftrag wiederholen” eingestellt ist, ist “Aktiviert” nicht abgehakt. Einige Minuten nach dem Wiedereinschalten des Druckers werden Ihre Aufträge gedruckt.

(Mein anderer Beitrag zu diesem Thema.)

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

Hatte hier mit dem gleichen CUPS-Quatsch zu tun… Die Lösung für mich war ein systemd-Skript, das alle n Minuten läuft.

/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 Quelle

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

Wie andere bereits gesagt haben, sollte ‘cupsenable’ oder ‘lpadmin -E’ den Zweck erfüllen.

Ein verwandtes Problem ist IIRC, dass CUPS den Drucker standardmäßig so konfiguriert, dass der Drucker deaktiviert wird, wenn das Drucken eines Auftrags irgendwie fehlschlägt. Sie können dies ändern, um den Auftrag stattdessen abzubrechen.