You are here
Create & Deleting CUPs Queues via CLI
Create A Print Queue
[root@host ~]# /usr/sbin/lpadmin -U adam -h cups.example.com:631 -p examplelm1 -E \
-m "foomatic:HP-LaserJet-laserjet.ppd" -D "Example Pick Ticket Printer"\
-L "Grand Rapids" -E -v lpd://printer.example.com/lp
This will create a queue named examplelm1 on the host cups.example.com as user adam.
- "-D" and "-L" specify the printer's description and location, respectively.
- The "-E" option, which must occur after the "-h" and -p" options instructs CUPS to immediately set the new print queue to enabled and accepting jobs.
- "-v" option specifies the device URI used to communicate with the actual printer.
The printer driver file "foomatic:HP-LaserJet-laserjet.ppd" must be a PPD file available to the print server. PPD files installed on the server can be listed using the "lpinfo -m" command:
[root@crew ~]# lpinfo -m | more
foomatic:Alps-MD-1000-md2k.ppd Alps MD-1000 Foomatic/md2k
foomatic:Alps-MD-1000-ppmtomd.ppd Alps MD-1000 Foomatic/ppmtomd
foomatic:Alps-MD-1300-md1xMono.ppd Alps MD-1300 Foomatic/md1xMono
foomatic:Alps-MD-1300-md2k.ppd Alps MD-1300 Foomatic/md2k
foomatic:Alps-MD-1300-ppmtomd.ppd Alps MD-1300 Foomatic/ppmtomd
...
The existence of the new printer can be verified by checking its status:
[root@host ~]# lpq -Pexamplelm1
examplelm1 is ready
no entries
The "-l" options of the lpstat command can be used to interrogate the details of the queue:
[root@host ~]# lpstat -l -pexamplelm1
printer examplelm1 is idle. enabled since Fri 30 Aug 2019 02:56:11 PM EDT
Form mounted:
Content types: any
Printer types: unknown
Description: Example Pick Ticket Printer
Alerts: none
Location: Grand Rapids
Connection: direct
Interface: /etc/cups/ppd/examplelm1.ppd
On fault: no alert
After fault: continue
Users allowed:
(all)
Forms allowed:
(none)
Banner required
Charset sets:
(none)
Default pitch:
Default page size:
Default port settings:
Delete A Print Queue
A print queue can also be deleted using the same lpadmin command used to create the queue.
[root@host ~]# /usr/sbin/lpadmi -U adam -h cups.example.com:631 -x examplelm1
Password for adam on crew.mormail.com?
lpadmin: The printer or class was not found.
[root@host ~]# lpq -Pexamplelm1
lpq: Unknown destination "examplelm1"!
Note that deleting the print queue appears to fail; only because the lpadmin command attempts to report the status of the named queue after the operation.