CUPS - Status ausgeben

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich möchte mal fragen, ob sich jemand mit CUPS auskennt (Im Internet findet man ja wenig verwertbares Infomaterial). Ich will mir auf einem Display anzeigen (dass bring ich selbst hin :D) lassen, ob gerade gedruckt wird und überprüfen ob ein Druckauftrag eingegangen ist (Um, falls der Drucker aus ist ihn automatisch per Funksteckdose einschalten zu lassen)

    Ich hoffe ihr könnt mir helfen

    Mit freundlichen Grüßen

    Niklas3008

    Einmal editiert, zuletzt von Niklas3008 (7. Oktober 2014 um 16:01)

  • Wieso "wenig verwertbares Infomaterial" :huh:

    Google Suche nach: CUPS Linux Status

    Und schon findet man einige brauchbare Informationen für dein Anliegen :D

    Zum Beispiel:
    http://kb.eclipseinc.com/kb/how-do-i-ma…x-print-queues/

  • Hallo,

    Okay, habe etwas gefunden, und zwar kann man sich mit lpstat -O anzeigen lassen, ob gerade ein Druckauftrag vorliegt.

    Jetzt habe ich folgenden Code:

    Sollte ein Druckauftrag vorhanden sein, kommt folgendes:

    Lexmark_E232-25 anonymous 1024 Di 07 Okt 2014 20:14:31 CEST

    Ist kein Druckauftrag vorhanden, kommt einfach nichts zurück!

    Aber irgendwie funktioniert dass nicht! Es kommt immer Druckauftrag raus :no_sad:

    Mit freundlichen Grüßen

    Niklas3008

  • Code
    framp@obelix ~ $ python
    Python 2.7.3 (default, Feb 27 2014, 19:58:35) 
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> s="Lexmark_E232-25 anonymous 1024 Di 07 Okt 2014 20:14:31 CEST"
    >>> print "Lexmark" in s
    True
    >>> print "Lexmarkx" in s
    False


    ;)
    aUSSERDEM WÜRDE ICH SUBPROCESS BENUTZEN

  • Hallo,

    Wie man hier sieht:

    Code
    Lexmark_E232-25         anonymous         1024   Di 07 Okt 2014 20:14:31 CEST
    Druckauftrag
    Lexmark_E232-25         anonymous         1024   Di 07 Okt 2014 20:14:32 CEST
    Druckauftrag
    Druckauftrag
    Druckauftrag
    Druckauftrag
    Druckauftrag

    Schreibt er trotzdem Druckauftrag, obwohl vom Befehl nichts mehr zurückkommt, sonst würde es ja angezeigt werden!

  • Das result von os.system ist immer der rc des os Calls. Da kann also niemals was von Lexmark drinstehen. Deshalb ja meine Empfehlung subprocess zu benutzen ;)

    Der Code funktioniert bei mir perfekt (Mit Samsung Drucker). Wenn Du nur einen Drucker hast ist kein result.find notwendig.

  • Das sollte gehen:

    Code
    try:
            proc = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
            result = proc.communicate()[0]
            rc = proc.returncode
        except OSError as err:
            print("OS error: {0}".format(err))

    Oder:

    Siehe dazu:
    http://legacy.python.org/dev/peps/pep-3109/
    https://docs.python.org/3/tutorial/errors.html
    https://docs.python.org/3.1/library/exceptions.html
    http://stackoverflow.com/questions/6448…se-exceptionfoo

    In Python3 wird auch nicht mehr print "bla" genutzt sondern print("bla")

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!