Druckerschnittstellenscripts erstellen
Wenn Sie einen Drucker haben, der nicht durch Hinzufügen eines Eintrags zur terminfo -Datenbank unterstützt wird, oder wenn Ihre Druckanforderungen nicht von den standard oder anderen Schnittstellenscripts unterstützt werden, die in der Datei /etc/lp/model bereitgestellt werden, können Sie ein eigenes Druckerschnittstellenscript erstellen.
Gehen Sie wie folgt vor, um ein angepasstes Schnittstellenscript zu erstellen:
Verwenden Sie den Befehl lp.tell , um anzugeben, dass Fehlernachrichten an den Druckdienst gesendet werden. Der standard -Druckerschnittstellencode ruft den Befehl lp.tell mit der Shellvariablen LPTELL auf. Das Programm lp.tell sendet seine Standardeingabe an den Druckservice. Der Druckservice leitet die Nachricht als Alert an den Administrator weiter. Wenn die Standardeingabe leer ist, löst lp.tell keinen Alert aus. Untersuchen Sie den Code, der unmittelbar auf diese Kommentare im Schnittstellenscript standard folgt, um ein Beispiel für die Verwendung des Programms lp.tell (LPTELL) zu finden:
# Here's where we set up the $LPTELL program to capture
# fault messages.
#
# Here's where we print the file.Mit dem speziellen Exit-Code 129 oder lp.tellmuss das Schnittstellenscript den Drucker selbst nicht inaktivieren. Ihr Schnittstellenscript kann den Drucker direkt inaktivieren, aber dadurch wird der Fehleralertmechanismus überschrieben. Alerts werden nur gesendet, wenn der Druckservice feststellt, dass ein Fehler am Drucker aufgetreten ist, und der spezielle Exit-Code und das lp.tell -Programm die wichtigsten Erkennungstools sind.
Wenn der Druckservice das Drucken einer Datei zu einem beliebigen Zeitpunkt unterbrechen muss, wird das Schnittstellenscript mit einem Signal 15 beendet (weitere Informationen finden Sie in den Abschnitten zum Befehl signal und zum Befehl kill ).
Wenn das Schnittstellenscript beim Empfang eines anderen Signals stoppt, geht der Druckservice davon aus, dass zukünftige Druckjobs nicht betroffen sind, und verwendet den Drucker weiterhin. Der Druckservice benachrichtigt die Person, die den Druckjob übergeben hat, dass der Job nicht erfolgreich beendet wurde.
Die Signale SIGHUP, ANMELDUNG, SIGQUIund SIGPIP (Trapnummern 1, 2, 3 und 13) werden ignoriert, wenn die Schnittstelle aufgerufen wird. Das Script der standard -Schnittstelle ändert dies, um diese Signale zu geeigneten Zeiten abzufangen, interpretiert diese Signale so, dass der Drucker ein Problem hat, und gibt einen Fehler aus.