gestion des imprimantes sous AIX

Creation: 6 janvier 2015
Mise à jour: 13 fevrier 2015
Version: 1.1
Author: Jean-Louis Bicquelet-Salaün
Location: http://jlbicquelet.free.fr
Copyright: (c) 2015 Jean-Louis BICQUELET-SALAÜN

Introduction

Parmi les différentes fonctionnalités qu'offre un système informatique et en particulié Unix ou Linux , l’impression est sans doute celle qui nécessite la plus grande attention et la plus grande rigueur. Il ne s'agit pas n’est pas d'une simple application gérant le périphérique d’impression mais plutôt d'une application client/serveur complexe.

Un système d’impression doit gérer les demandes d’impression provenant aussi bien des utilisateurs locaux que des utilisateurs distants. Il existe deux systèmes d’impression généralement utilisés sous Linux :

  • lpd, le système BSD de l’université de Californie;
  • CUPS, « Common UNIX printing System ».
Il existe trois services d’impression qui coexistent dans le monde Unix :
  • Le spouleur « System V » ( lpsched , le plus répandu )
  • Le spouleur « Berkeley » ( lpd , sur les versions SunOs )
  • Le spouleur « Aix » ( qdaemon )

Ces trois systèmes cohabitent sous AIX. On va donc retrouver 3 lots de commandes qui vont permettre d'imprimer.

Historiquement, les imprimantes UNIX supportaient un langage commun, le PostScript. Mais la prolifération des imprimantes bon marché, à fait abandonner le PostScript au profit de langages d'impression spécifique à chaque constructeur.

commandes

Les familles de commandes d'impression peuvent être regroupées ainsi:

System V Berkeley Aix
Requêtes d’impression lp lpr qprt
Etat des files d’attente lpstat lpq qchk
Annulation de requêtes cancel lprm qcan

configuration des queue ( llsallq)

/usr/bin/lsallq donne les noms de toutes les queus
/usr/bin/lsallq -c liste toutes les queus

état des queues d'impression ( lpstat , lpq , qchk )

On obtient l’état des files d’attente en exécutant les commandes lpstat, lpq et qchk.

lpstat liste des requêtes locales
lpstat -o liste de toutes les requêtes
lpq liste des requêtes locales
lpq -l liste des requêtes au format long
lpq -W liste des requêtes au format plus développé
lpq -W -Pimprimante1 liste des requêtes au format plus développé pour l'imprimante1
qchk liste des requêtes locales
qchk -q affiche la queue par défaut
qchk -P imprimante1 affiche la queue pour l'imprimante1
qchk -# 10 affiche l'état du job 10
qchk -W -q liste des requêtes au format plus développé

Voici les différents états possibles :

Ready La file d’attente est dans l’état de base, elle attend un ordre. C’est l’état initial lors de la création d’une file d’attente.
Running L’imprimante est en train d’imprimer.
Initing Le programme de “backend” est en train de se connecter au serveur d’impression.
Connect Le programme de “backend” s’est connecté au serveur d’impression.
Sending Le serveur est en train d’envoyer le travail au serveur d’impression.
Hold Cet état spécifie que le job est retenu et ne pourra pas être mis en file d’attente.
Dev_Busy Plusieurs files d’attente sont définies sur la même unité et l’une d’entre-elles est en train de l’utiliser.
Dev_Wait La file d’attente attend que l’imprimante soit prête car celle-ci est “en arrêt” (plus de papier, bourrage...).
Down Il n’y a plus de communication entre l’imprimante et le serveur après un “time out”.
Opr_Wait Le programme de backend attend une action de l’opérateur.
Unknown état non reconnu ou fichier de configuration non reconnu

Les actions possibles en fonction des états sont:

  • dans le cas de l'état Hold on peut libérer le job, soit en ligne de commande soit en passant par smit spooler.g

  • dans le cas de Dev_Busy il faut attendre la fin de l’impression ou “tuer” le process qui utilise le port d’impression.

  • dans le cas de Dev_Wait il faut:

    • vérifier l’imprimante et les connexions.
    • dans le cas d’une imprimante série vérifier le contrôle de flux

    A la fin du “time out”, la file d’attente repasse à l’état Down.

impression ( lp , lpr , qprt )

lp .profile impression sur l'imprimante par défaut
lp -n2 cv imprimer en deux exemplaire
lp -d imprimante1 main.c impresssion sur l'imprimante1
lpr -Pimprimante1 toto impresssion sur l'imprimante1
qptr /etc/hosts impression sur l'imprimante par défaut

annulations ou modification des requêtes d’impression ( cancel , lprm , qcan )

cancel -u user Annulation des requêtes d’un utilisateur
lprm 12 suppression du job 12
qcan -x 12 suppression du job 12
qcan -x 12 -Pimprimante1 suppression du job 12 de la queue imprimante1
qcan -X -Pimprimante1 suppression de tous les jobs de la queue imprimante1

commandes de gestion des queues d'impression ( enq )

La commande enq permet de gérer les queues et en particulier de suivre l'état de la queue, d'imprimer, de canceler un job d'impression ou de déplacer un job.

enq -A lister le contenu de toutes queues d'impression
enq -L affiche l'état des queues au format long
enq -W affiche l'état des queues au format large
enq -L -Pimprimante3 affiche l'état des queues au format long pour l'imprimante3
enq -q -Pimprimante2 pour afficher le status de la queue imprimante2
enq fichier impression du fichier sur l'imprimante par défaut
enq -P printer2 fichier impression sur l'imprimante printer2
enq -x12 -Pimprimante1 suppression du job 12 de la queue imprimante1
enq -X -Pimprimante1 annule tous les jobs d'impression de l'imprimante1
enq -h -#100 hold le job 100
enq -p -#100 libère le job 100
enq -h -u user hold les jobs de l'utilisateur user
enq -p -u user libère es jobs de l'utilisateur user
enq -a 3 -#102 change le numéro de priorité du job 102
enq -Q -Pimprimante2 -#18 déplace le job 18 vers l'imprimante -Pimprimante2
enq -#12 -Pimprimante1 -Qimprimante2 déplace le job 12 de l'imprimante1 à l'imprimante2

gestion des imprimantes par smit

Il est bien sur possible de gérer les imprimantes par smit. C'est aussi très utile pour débuter. Le raccourci à utiliser est smit spooler.

#smitty spooler

Move cursor to desired item and press Enter.

  Start a Print Job
  Manage Print Jobs
  List All Print Queues
  Manage Print Queues
  Add a Print Queue
  Add an Additional Printer to an Existing Print Queue
  Change / Show Print Queue Characteristics
  Change / Show Printer Connection Characteristics
  Remove a Print Queue
  Manage Print Server
  Programming Tools

  Change / Show Current Print Subsystem

fichiers associés aux imprimantes

Les informations associées aux imprimantes se trouvenr dans /etc/qconfig.

services liés aux impressions

Les services liés aux impressions sont au nombre de 3. On peux les lister avec la commande lssrc -g spooler.

#lssrc -g spooler
Subsystem         Group            PID          Status
qdaemon          spooler          3276864      active
writesrv         spooler          13041752     active
lpd              spooler          15401162     active

Ils doivent être actif pour que l'impression fonctionne. Il faut donc utiliser startsrc -s et stoptsrc -s suivi du service pour les activer et les désactiver et @(lssrc -s) pour obtenir leur status.