Crear scripts de interfaz de impresora
Si tiene una impresora que no está soportada añadiendo una entrada a la base de datos terminfo , o si sus necesidades de impresión no están soportadas por el standard u otros scripts de interfaz proporcionados en el archivo /etc/lp/model , puede crear su propio script de interfaz de impresora.
Para crear un script de interfaz personalizado, haga lo siguiente:
Para especificar que los mensajes de error se envíen al servicio de impresión, utilice el mandato lp.tell . El código de interfaz de impresora de standard llama al mandato lp.tell con la variable de shell LPTELL . El programa lp.tell envía su entrada estándar al servicio de impresión. El servicio de impresión reenvía el mensaje como una alerta al administrador. Si su entrada estándar está vacía, lp.tell no inicia una alerta. Examine el código inmediatamente después de estos comentarios en el script de interfaz standard para ver un ejemplo de cómo utilizar el programa lp.tell (LPTELL):
# Here's where we set up the $LPTELL program to capture
# fault messages.
#
# Here's where we print the file.Con el código de salida especial 129 o lp.tell, no es necesario que el script de interfaz inhabilite la propia impresora. El script de interfaz puede inhabilitar la impresora directamente, pero al hacerlo altera temporalmente el mecanismo de alerta de errores. Las alertas sólo se envían si el servicio de impresión detecta que la impresora ha fallado y el código de salida especial y el programa lp.tell son sus principales herramientas de detección.
Si el servicio de impresión debe interrumpir la impresión de un archivo en cualquier momento, interrumpe el script de interfaz con una señal 15 (consulte el mandato signal y el mandato kill para obtener más información).
Si el script de interfaz se detiene desde la recepción de cualquier otra señal, el servicio de impresión asume que los trabajos de impresión futuros no se ven afectados y continúa utilizando la impresora. El servicio de impresión notifica a la persona que ha enviado el trabajo de impresión que el trabajo no ha finalizado correctamente.
Las señales SIGHUP, SIGINT, SIGQUIy SIGPIP (números de condición de excepción 1, 2, 3 y 13) se ignoran cuando se invoca la interfaz. El script de interfaz standard cambia esto para atrapar estas señales en el momento adecuado, interpreta estas señales para indicar que la impresora tiene un problema y emite un error.