Table des matières

Dernière mise-à-jour : 2020/01/30 03:28

LSF114 - Gestion des Impressions

Cups

Le logiciel Common Unix Printing System est un système de gestion des impressions conçu pour Unix.

Protocoles

Cups utilise le protocole IPP sur les ports udp/631 et tcp/631.

Ce protocole :

Cups peut aussi utiliser les deux protocoles suivants :

Daemon

cupsd est le daemon principal du système CUPS. Quand cupsd traite une impression, il transmet les données à un filtre en fonction du modèle d'imprimante. Après traitement par le filtre, cupsd transmet le résultat à un backend qui se charge de l'impression. Les échanges entre cupsd et ces programmes se font via des répertoires de spools et des tubes.

Démarrez le service cups :

SLES12SP1:~ # systemctl status cups
cups.service - CUPS Printing Service
   Loaded: loaded (/usr/lib/systemd/system/cups.service; disabled)
   Active: inactive (dead)

SLES12SP1:~ # systemctl enable cups
SLES12SP1:~ # systemctl start cups
SLES12SP1:~ # systemctl status cups
cups.service - CUPS Printing Service
   Loaded: loaded (/usr/lib/systemd/system/cups.service; enabled)
   Active: active (running) since Mon 2017-10-16 16:47:39 CEST; 3s ago
 Main PID: 31852 (cupsd)
   CGroup: /system.slice/cups.service
           └─31852 /usr/sbin/cupsd -f

cupsd.conf

Le principal fichier concerné par CUPS est :

/etc/cups/cupsd.conf

Le fichier de configuration de CUPS est /etc/cups/cupsd.conf. Dans ce fichier on peut trouver :

SLES12SP1:~ # cat /etc/cups/cupsd.conf
#
# "$Id: cupsd.conf.in 11025 2013-06-07 01:00:33Z msweet $"
#
# Configuration file for the CUPS scheduler.  See "man cupsd.conf" for a
# complete description of this file.
#

# Log general information in error_log - change "warn" to "debug"
# for troubleshooting...
LogLevel warn

# Only listen for connections from the local machine.
Listen localhost:631
Listen /run/cups/cups.sock

# Show shared printers on the local network.
Browsing On
BrowseLocalProtocols dnssd

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Web interface setting...
WebInterface Yes

# Restrict access to the server...
<Location />
  Order allow,deny
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Set the default printer/job policies...
<Policy default>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

# Set the authenticated printer/job policies...
<Policy authenticated>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Default
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

# The policy below is added by SUSE during build of our cups package.
# The policy 'allowallforanybody' is totally open and insecure and therefore
# it can only be used within an internal network where only trused users exist
# and where the cupsd is not accessible at all from any external host, see
# http://en.opensuse.org/SDB:CUPS_and_SANE_Firewall_settings
# Have in mind that any user who is allowed to do printer admin tasks
# can change the print queues as he likes - e.g. send copies of confidental
# print jobs from an internal network to any external destination, see
# http://en.opensuse.org/SDB:CUPS_in_a_Nutshell
# For documentation regarding 'Managing Operation Policies' see
# http://www.cups.org/documentation.php/doc-1.7/policies.html
<Policy allowallforanybody>
  # Allow anybody to access job's private values:
  JobPrivateAccess all
  # Make none of the job values to be private:
  JobPrivateValues none
  # Allow anybody to access subscription's private values:
  SubscriptionPrivateAccess all
  # Make none of the subscription values to be private:
  SubscriptionPrivateValues none
  # Allow anybody to do all IPP operations:
  # Currently the IPP operations Validate-Job Cancel-Jobs Cancel-My-Jobs Close-Job CUPS-Get-Document
  # must be additionally exlicitly specified because those IPP operations are not included
  # in the "All" wildcard value - otherwise cupsd prints error messages of the form
  # "No limit for Validate-Job defined in policy allowallforanybody and no suitable template found."
  <Limit All Validate-Job Cancel-Jobs Cancel-My-Jobs Close-Job CUPS-Get-Document>
    Order deny,allow
    Allow from all
  </Limit>
</Policy>
# Explicitly set the CUPS 'default' policy to be used by default:
DefaultPolicy default

#
# End of "$Id: cupsd.conf.in 11025 2013-06-07 01:00:33Z msweet $".
#

Filtres

Les filtres disponibles au système CUPS se trouvent dans le répertoire /usr/lib/cups/filter :

SLES12SP1:~ # ls /usr/lib/cups/filter
bannertopdf     gziptoany        pdftopdf       rastertoescpx  texttopdf
commandtoescpx  imagetopdf       pdftops        rastertohp     texttops
commandtopclx   imagetops        pdftoraster    rastertolabel  urftopdf
commandtops     imagetoraster    pstopdf        rastertopclx
foomatic-rip    pdftoijs         pstops         rastertopdf
gstopxl         pdftoippprinter  rastertodymo   rastertopwg
gstoraster      pdftoopvp        rastertoepson  textonly

Backends

Les Backends disponibles au système CUPS se trouvent dans le répertoire /usr/lib/cups/backend :

SLES12SP1:~ # ls /usr/lib/cups/backend
dnssd  http  https  ipp  ipps  lpd  parallel  serial  smb  snmp  socket  usb

La liste des backends reconnus par CUPS peut être obtenue en saisissant la commande suivante :

SLES12SP1:~ # lpinfo -v
network ipps
network http
network socket
network ipp
network lpd
network https
network smb

Il y a un type de backend par liaison locale d'imprimante (usb, série, parallèle). Il peut y avoir aussi un backend par type de protocole réseau :

Backend Description
IPP Client IPP
LPD Client LPD
SMB Client SMB
Socket Client JetDirect sur port tcp/9100
Pap/cap Client AppleTalk

Journaux

Les journaux de CUPS se trouvent dans /var/log/cups :

SLES12SP1:~ # ls -l /var/log/cups
total 8
-rw-r--r-- 1 root lp 191 Oct 16 16:49 access_log
-rw-r--r-- 1 root lp  87 Oct 16 16:49 error_log
-rw-r--r-- 1 root lp   0 Oct 16 16:47 page_log

Imprimantes

La commande suivante liste les imprimantes connues de CUPS :

SLES12SP1:~ # lpinfo -m
lsb/usr/cupsfilters/Fuji_Xerox-DocuPrint_CM305_df-PDF.ppd Fuji Xerox
lsb/usr/cupsfilters/Generic-PDF_Printer-PDF.ppd Generic PDF Printer
Postscript-level1.ppd.gz Generic PostScript level 1 Printer Foomatic/Postscript (recommended)
Postscript-level2.ppd.gz Generic PostScript level 2 Printer Foomatic/Postscript (recommended)
lsb/usr/cupsfilters/textonly.ppd Generic text-only printer
lsb/usr/cupsfilters/HP-Color_LaserJet_CM3530_MFP-PDF.ppd HP Color LaserJet CM3530 MFP PDF
lsb/usr/cupsfilters/pxlcolor.ppd HP Color LaserJet Series PCL 6 CUPS
lsb/usr/cupsfilters/pxlmono.ppd HP LaserJet Series PCL 6 CUPS
lsb/usr/cupsfilters/HP-PhotoSmart_Pro_B8300-hpijs-pdftoijs.ppd HP PhotoSmart Pro B8300 CUPS/pdftoijs/hpijs
Postscript.ppd.gz Postscript Generic postscript printer
raw Raw Queue

Administration

Le serveur CUPS est administré en ligne de commande par l'utilisation d'une ou de plusieurs des commandes suivantes :

Commande Description
lpadmin Principale commande d'administration pour ajouter, supprimer et modifier des files d'attente
accept Autorise le dépôt de requêtes dans un spool
reject Interdit le dépôt de requêtes dans un spool
cupsenable Autorise le traitement des requêtes dans un spool
cupsdisable Interdit le traitement des requêtes dans un spool
lpstat Liste des travaux en attente
cancel Supprime des requêtes
lpmove Déplace des travaux en attente d'un spool à un autre
lpinfo Affiche la liste des filtres ou backends disponibles
lppasswd Gère les comptes et les mots de passe pour l'accès web

lpstat

Pour consulter la liste des files d'attente, il convient d'utiliser donc la commande lpstat :

SLES12SP1:~ # lpstat -t
scheduler is running
no system default destination
lpstat: No destinations added.
lpstat: No destinations added.
lpstat: No destinations added.
lpstat: No destinations added.

lpadmin

Créez maintenant une file d'attente sans pilote. Les imprimantes sans pilote utilisent le mode raw :

SLES12SP1:~ # lpadmin -p imp1 -v socket://localhost:12000 -m raw

Les options de cette commande sont les suivantes :

Options Description
-p Le nom de la file
-v L'imprimante physique ou réseau sous forme URL
-m Le modèle à utiliser (un fichier ayant une extension ppd qui identifie l'imprimante)

Les types de URL possible sont :

URL Description
file:/chemin/fichier Impression dans un fichier
http://serveur:631/ipp/port1 Impression via http
lpd://serveur/queue Impression via LPD
ipp://serveur:631/printers/queue Impression via IPP
smb://workgroup/serveur/nompartage Impression via SMB
socket://serveur Impression via JetDirect
serial:/dev/ttyS0?baud=1200+bits=8+parity=none+flow=none Impression via port série
parallel:/dev/lp0 Impression via port parallèle

Vérifiez la création de la file d'attente :

SLES12SP1:~ # lpstat -t
scheduler is running
no system default destination
device for imp1: socket://localhost:12000
imp1 not accepting requests since Mon Oct 16 16:50:56 2017 -
	reason unknown
printer imp1 disabled since Mon Oct 16 16:50:56 2017 -
	reason unknown

accept, cupsenable

Il est maintenant possible d'activer l'imprimante grâce aux commandes accept et enable :

SLES12SP1:~ # accept imp1
SLES12SP1:~ # lpstat -t
scheduler is running
no system default destination
device for imp1: socket://localhost:12000
imp1 accepting requests since Mon Oct 16 16:50:56 2017
printer imp1 disabled since Mon Oct 16 16:50:56 2017 -
	reason unknown
SLES12SP1:~ # cupsenable imp1
SLES12SP1:~ # lpstat -t
scheduler is running
no system default destination
device for imp1: socket://localhost:12000
imp1 accepting requests since Mon Oct 16 16:52:08 2017
printer imp1 is idle.  enabled since Mon Oct 16 16:52:08 2017

Important : Notez que les deux commandes accept et cupsenable ont leurs opposées : reject et cupsdisable.

Pour nommer une imprimante en tant que la destination par défaut, il convient d'utiliser la commande lpadmin avec l'option -d :

SLES12SP1:~ # lpadmin -d imp1
SLES12SP1:~ # lpstat -t
scheduler is running
system default destination: imp1
device for imp1: socket://localhost:12000
imp1 accepting requests since Mon Oct 16 16:52:08 2017
printer imp1 is idle.  enabled since Mon Oct 16 16:52:08 2017

Vous allez mainteant créer une fille d'attente pour une imprimante HP Color LaserJet Series PCL 6 utilisant le fichier pxlcolor.ppd, appelée Imprimante1 et étant connectée au port parallèle :

SLES12SP1:~ # cp /usr/share/ppd/cupsfilters/pxlcolor.ppd /usr/share/cups/model/
SLES12SP1:~ # lpadmin -p Imprimante1 -E -v parallel:/dev/lp0 -m pxlcolor.ppd
SLES12SP1:~ # lpstat -t
scheduler is running
system default destination: imp1
device for imp1: socket://localhost:12000
device for Imprimante1: parallel:/dev/lp0
imp1 accepting requests since Mon Oct 16 16:52:08 2017
Imprimante1 accepting requests since Mon Oct 16 16:52:59 2017
printer imp1 is idle.  enabled since Mon Oct 16 16:52:08 2017
printer Imprimante1 is idle.  enabled since Mon Oct 16 16:52:59 2017

Important : Notez que l'option -E permet de combiner les commandes accept et cupsenable avec lpadmin.

Sous SLES, pour créer la file d'attente physique associée à cette imprimante il convient de saisir les commandes suivantes

SLES12SP1:~ # mknod /dev/lp0 c 6 0
SLES12SP1:~ # ls -l /dev/lp0 
crw-r--r-- 1 root root 6, 0 Oct 20 12:42 /dev/lp0
SLES12SP1:~ # chgrp lp /dev/lp0
SLES12SP1:~ # chmod 660 /dev/lp0
SLES12SP1:~ # ls -l /dev/lp0 
crw-rw---- 1 root lp 6, 0 Oct 20 12:42 /dev/lp0

Testez maintenant votre imprimante fictive :

SLES12SP1:~ # echo "Test Printer File" > /tmp/test.print
SLES12SP1:~ # lpadmin -d Imprimante1
SLES12SP1:~ # lpstat -t
scheduler is running
system default destination: Imprimante1
device for imp1: socket://localhost:12000
device for Imprimante1: parallel:/dev/lp0
imp1 accepting requests since Mon Oct 16 16:52:08 2017
Imprimante1 accepting requests since Mon Oct 16 16:52:59 2017
printer imp1 is idle.  enabled since Mon Oct 16 16:52:08 2017
printer Imprimante1 is idle.  enabled since Mon Oct 16 16:52:59 2017

SLES12SP1:~ # lp /tmp/test.print
request id is Imprimante1-1 (1 file(s))

Important : Notez que l'impression a eu lieu et la requête s'appelle Imprimante1-1.

Créez maintenant une deuxième file d'attente Imprimante2 et saisissez la commande lpstat -t. Vous devez obtenir un résultat similaire à celui-ci :

SLES12SP1:~ # lpadmin -p Imprimante2 -E -v parallel:/dev/lp1 -m pxlcolor.ppd
SLES12SP1:~ # lpstat -t
scheduler is running
system default destination: Imprimante1
device for imp1: socket://localhost:12000
device for Imprimante1: parallel:/dev/lp0
device for Imprimante2: parallel:/dev/lp1
imp1 accepting requests since Mon Oct 16 16:52:08 2017
Imprimante1 accepting requests since Fri Oct 20 12:44:08 2017
Imprimante2 accepting requests since Fri Oct 20 12:44:39 2017
printer imp1 is idle.  enabled since Mon Oct 16 16:52:08 2017
printer Imprimante1 now printing Imprimante1-1.  enabled since Fri Oct 20 12:44:08 2017
	Printer not connected; will retry in 30 seconds.
printer Imprimante2 is idle.  enabled since Fri Oct 20 12:44:39 2017
Imprimante1-1           root              1024   Fri Oct 20 12:44:08 2017

Classe d'imprimantes

Une classe est un ensemble ordonné d'imprimantes. Les requêtes envoyées à la classe sont imprimées sur la première imprimante disponible.

Pour créer une classe il convient d'utiliser la commande lpadmin avec l'option -c suivie par le nom de la classe à créer :

SLES12SP1:~ # lpadmin -p Imprimante1 -c classe1
SLES12SP1:~ # lpadmin -p Imprimante2 -c classe1

Vérifiez la création de la classe :

SLES12SP1:~ # lpstat -t
scheduler is running
system default destination: Imprimante1
members of class classe1:
	Imprimante1
	Imprimante2
device for classe1: ///dev/null
device for imp1: socket://localhost:12000
device for Imprimante1: parallel:/dev/lp0
device for Imprimante2: parallel:/dev/lp1
classe1 not accepting requests since Fri Oct 20 12:45:24 2017 -
	reason unknown
imp1 accepting requests since Mon Oct 16 16:52:08 2017
Imprimante1 accepting requests since Fri Oct 20 12:44:08 2017
Imprimante2 accepting requests since Fri Oct 20 12:44:39 2017
printer classe1 disabled since Fri Oct 20 12:45:24 2017 -
	reason unknown
printer imp1 is idle.  enabled since Mon Oct 16 16:52:08 2017
printer Imprimante1 now printing Imprimante1-1.  enabled since Fri Oct 20 12:44:08 2017
	Printer not connected; will retry in 30 seconds.
printer Imprimante2 is idle.  enabled since Fri Oct 20 12:44:39 2017
Imprimante1-1           root              1024   Fri Oct 20 12:44:08 2017

Le fichier /etc/cups/printers.conf

La configuration globale des files d'attente se trouve dans le fichier /etc/cups/printers.conf :

SLES12SP1:~ # cat /etc/cups/printers.conf
# Printer configuration file for CUPS v1.7.5
# Written by cupsd on 2017-10-20 12:45
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<Printer imp1>
UUID urn:uuid:b315c8d6-3f52-30b2-4052-80dc65291837
Info imp1
DeviceURI socket://localhost:12000
State Idle
StateTime 1508165528
Type 4
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
<DefaultPrinter Imprimante1>
UUID urn:uuid:dcb2d784-c4eb-3928-5e6c-8dc269011b14
Info Imprimante1
MakeModel HP Color LaserJet Series PCL 6 CUPS
DeviceURI parallel:/dev/lp0
State Idle
StateTime 1508496248
Type 8400972
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
<Printer Imprimante2>
UUID urn:uuid:e68250ba-7555-3c42-7faa-452bd32f12bb
Info Imprimante2
MakeModel HP Color LaserJet Series PCL 6 CUPS
DeviceURI parallel:/dev/lp1
State Idle
StateTime 1508496279
Type 8400972
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>

Le fichier /etc/cups/classes.conf

La configuration globale des classes se trouve dans le fichier /etc/cups/classes.conf :

SLES12SP1:~ # cat /etc/cups/classes.conf
# Class configuration file for CUPS v1.7.5
# Written by cupsd on 2017-10-20 12:45
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<Class classe1>
UUID urn:uuid:be5f15f7-0235-38a6-5d5f-f516775d2d47
Info classe1
State Stopped
StateTime 1508496324
Accepting No
Shared Yes
JobSheets none none
Printer Imprimante1
Printer Imprimante2
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-current-job
</Class>

cancel

Pour annuler l'impression il convient d'utiliser la commande cancel:

SLES12SP1:~ # lpstat
Imprimante1-1           root              1024   Fri Oct 20 12:44:08 2017
SLES12SP1:~ # cancel imprimante1-1
SLES12SP1:~ # lpstat
SLES12SP1:~ # 

lpmove

La commande lpmove permet de déplacer tous les jobs d'une file à une autre.

Déclarez l'imprimante imp1 comme étant l'imprimante par défault :

SLES12SP1:~ # lpadmin -d imp1

Créez ensuite une nouvelle impression :

SLES12SP1:~ # lp /tmp/test.print
request id is imp1-2 (1 file(s))
SLES12SP1:~ # lpstat
imp1-2                  root              1024   Fri Oct 20 12:47:56 2017

Déplacer ce job vers la classe1 :

SLES12SP1:~ # lpmove imp1 classe1
SLES12SP1:~ # lpstat
classe1-2               root              1024   Fri Oct 20 12:47:56 2017

Pour retirer une file d'une classe, il convient d'utiliser la commande lpadmin :

SLES12SP1:~ # lpadmin -p Imprimante1 -r classe1
SLES12SP1:~ # lpadmin -p Imprimante2 -r classe1
SLES12SP1:~ # lpstat -t
scheduler is running
system default destination: imp1
device for imp1: socket://localhost:12000
device for Imprimante1: parallel:/dev/lp0
device for Imprimante2: parallel:/dev/lp1
imp1 accepting requests since Fri Oct 20 12:48:15 2017
Imprimante1 accepting requests since Fri Oct 20 12:47:18 2017
Imprimante2 accepting requests since Fri Oct 20 12:44:39 2017
printer imp1 is idle.  enabled since Fri Oct 20 12:48:15 2017
	The printer is not responding.
printer Imprimante1 is idle.  enabled since Fri Oct 20 12:47:18 2017
	Printer not connected; will retry in 30 seconds.
printer Imprimante2 is idle.  enabled since Fri Oct 20 12:44:39 2017

Important : Notez que la classe est automatiquement supprimée quand elle est vide.

Pour supprimer les files créées il convient de nouveau à utiliser la commande lpadmin :

SLES12SP1:~ # lpadmin -x Imprimante1
SLES12SP1:~ # lpadmin -x Imprimante2
SLES12SP1:~ # lpadmin -x imp1
SLES12SP1:~ # lpstat -t
scheduler is running
no system default destination
lpstat: No destinations added.
lpstat: No destinations added.
lpstat: No destinations added.
lpstat: No destinations added.

Interface Web

CUPS peut également être administré en utilisant l'interface Web sur le port 631/tcp.


<html>

Copyright © 2004-2017 I2TCH LIMITED

</html>