Ejecute un script cuando el usuario presione imprimir y no comience a poner en cola antes de que finalice el script (linux, cups)

Lo que necesito hacer es ejecutar un progtwig / script de Python junto con las impresiones de los usuarios, y no dejar que el trabajo de impresión antes de que se cierre este progtwig.

El motivo es que el controlador de impresión no es de código abierto, y necesito cambiar la configuración del usuario (en este caso, un ID de departamento y una contraseña), que normalmente es por / usuario, pero como este es un quiosco (diferentes usuarios con la misma cuenta) Necesito asegurarme de restablecer, y avisar al usuario antes de que los trabajos de impresión se pongan en cola, para que los diferentes usuarios no tomen los demás trabajos.

He creado un progtwig para manejar las configuraciones, solo necesito una forma de iniciarlo, y no permitir que el trabajo de spool comience antes de que el usuario haya terminado la progtwigción / configuraciones.

He intentado buscar / buscar en Google pero no puedo encontrar una respuesta, ¿tengo que poner en cola el trabajo a través de un filtro de tazas primero o si hay una forma más inteligente de manejar esto?

Encontré la solución perfecta para mi problema. Tea4cups , actúa como envoltorio para tazas. Y el uso de un tea4cups prehook resolvió mi problema.

Sin embargo, me encuentro con algunos problemas, así que los anoto aquí si alguien viene por el mismo camino.

  1. tea4cups se basa en python2 y tengo python3 como biblioteca estándar, esto dio algunos errores inesperados como “clave incorrecta” del registro de tazas. Para resolver esto edité “/ usr / lib / cups / backend / tea4cups” y cambié el entorno:

#! / usr / bin / env python

dentro:

#! / usr / bin / env python2

  1. Mi prehook necesitaba iniciar un progtwig de python, ya que usa x display, y esto no funcionaba de la caja. Y también es necesario iniciar este progtwig como el usuario que realmente envía el trabajo de impresión. Para que estas dos cosas funcionen, tuve que escribir el prehook de la siguiente manera:

prehook_popUp: su $ TEAUSERNAME -c “DISPLAY =: 0.0 python /usr/share/candepid/PopUp.py”