1.\" Copyright (c) 1983, 1991, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 3. All advertising materials mentioning features or use of this software 13.\" must display the following acknowledgement: 14.\" This product includes software developed by the University of 15.\" California, Berkeley and its contributors. 16.\" 4. Neither the name of the University nor the names of its contributors 17.\" may be used to endorse or promote products derived from this software 18.\" without specific prior written permission. 19.\" 20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30.\" SUCH DAMAGE. 31.\" 32.\" @(#)lpc.8 8.5 (Berkeley) 4/28/95 33.\" $FreeBSD$ 34.\" 35.Dd July 16, 2002 36.Dt LPC 8 37.Os 38.Sh NAME 39.Nm lpc 40.Nd line printer control program 41.Sh SYNOPSIS 42.Nm 43.Op Ar command Op Ar argument ... 44.Sh DESCRIPTION 45The 46.Nm 47utility is used by the system administrator to control the 48operation of the line printer system. 49For each line printer configured in 50.Pa /etc/printcap , 51.Nm 52may be used to: 53.Bl -bullet -offset indent 54.It 55disable or enable a printer, 56.It 57disable or enable a printer's spooling queue, 58.It 59rearrange the order of jobs in a spooling queue, 60.It 61find the status of printers, and their associated 62spooling queues and printer daemons, 63.It 64change the status message for printer queues (the status message 65may be seen by users as part of the output of the 66.Xr lpq 1 67utility). 68.El 69.Pp 70Without any arguments, 71.Nm 72will prompt for commands from the standard input. 73If arguments are supplied, 74.Nm 75interprets the first argument as a command and the remaining 76arguments as parameters to the command. 77The standard input 78may be redirected causing 79.Nm 80to read commands from file. 81Commands may be abbreviated; 82the following is the list of recognized commands. 83.Pp 84.Bl -tag -width indent -compact 85.It Ic \&? Op Ar command ... 86.It Ic help Op Ar command ... 87Print a short description of each command specified in the argument list, 88or, if no argument is given, a list of the recognized commands. 89.Pp 90.It Ic abort Brq Cm all | Ar printer 91Terminate an active spooling daemon on the local host immediately and 92then disable printing (preventing new daemons from being started by 93.Xr lpr 1 ) 94for the specified printers. 95.Pp 96.It Ic bottomq Ar printer Op Ar jobspec ... 97Take the specified jobs in the order specified and move them to the 98bottom of the printer queue. 99Each 100.Ar jobspec 101can match multiple print jobs. 102The full description of a 103.Ar jobspec 104is given below. 105.Pp 106.It Ic clean Brq Cm all | Ar printer 107Remove any temporary files, data files, and control files that cannot 108be printed (i.e., do not form a complete printer job) 109from the specified printer queue(s) on the local machine. 110This command will also look for 111.Pa core 112files in spool directory 113for each printer queue, and list any that are found. 114It will not remove any 115.Pa core 116files. 117See also the 118.Ic tclean 119command. 120.Pp 121.It Ic disable Brq Cm all | Ar printer 122Turn the specified printer queues off. 123This prevents new 124printer jobs from being entered into the queue by 125.Xr lpr 1 . 126.Pp 127.It Ic down Bro Cm all | Ar printer ... Brc Cm -msg Ar message ... 128.It Ic down Bro Cm all | Ar printer Brc Ar message ... 129Turn the specified printer queue off, disable printing and put 130.Ar message 131in the printer status file. 132When specifying more than one printer queue, the 133.Ic -msg 134argument is required to separate the list of printers from the text 135that will be the new status message. 136The message does not need to be quoted, the 137remaining arguments are treated like 138.Xr echo 1 . 139This is normally used to take a printer down, and let other users 140find out why it is down (the 141.Xr lpq 1 142utility will indicate that the printer is down and will print the 143status message). 144.Pp 145.It Ic enable Brq Cm all | Ar printer 146Enable spooling on the local queue for the listed printers. 147This will allow 148.Xr lpr 1 149to put new jobs in the spool queue. 150.Pp 151.It Ic exit 152.It Ic quit 153Exit from 154.Nm . 155.Pp 156.It Ic restart Brq Cm all | Ar printer 157Attempt to start a new printer daemon. 158This is useful when some abnormal condition causes the daemon to 159die unexpectedly, leaving jobs in the queue. 160.Xr lpq 1 161will report that there is no daemon present when this condition occurs. 162If the user is the super-user, 163try to abort the current daemon first (i.e., kill and restart a stuck daemon). 164.Pp 165.It Ic setstatus Bro Cm all | Ar printer Brc Cm -msg Ar message ... 166Set the status message for the specified printers. 167The 168.Ic -msg 169argument is required to separate the list of printers from the text 170that will be the new status message. 171This is normally used to change the status message when the printer 172queue is no longer active after printing has been disabled, and you 173want to change what users will see in the output of the 174.Xr lpq 1 175utility. 176.Pp 177.It Ic start Brq Cm all | Ar printer 178Enable printing and start a spooling daemon for the listed printers. 179.Pp 180.It Ic status Brq Cm all | Ar printer 181Display the status of daemons and queues on the local machine. 182.Pp 183.It Ic stop Brq Cm all | Ar printer 184Stop a spooling daemon after the current job completes and disable 185printing. 186.Pp 187.It Ic tclean Brq Cm all | Ar printer 188This will do a test-run of the 189.Ic clean 190command. 191All the same checking is done, but the command will only print out 192messages saying what a similar 193.Ic clean 194command would do if the user typed it in. 195It will not remove any files. 196Note that the 197.Ic clean 198command is a privileged command, while the 199.Ic tclean 200command is not restricted. 201.Pp 202.It Ic topq Ar printer Op Ar jobspec ... 203Take the specified jobs in the order specified and move them to the 204top of the printer queue. 205Each 206.Ar jobspec 207can match multiple print jobs. 208The full description of a 209.Ar jobspec 210is given below. 211.Pp 212.It Ic up Brq Cm all | Ar printer 213Enable everything and start a new printer daemon. 214Undoes the effects of 215.Ic down . 216.El 217.Pp 218Commands such as 219.Ic topq 220and 221.Ic bottomq 222can take one or more 223.Ar jobspec 224to specify which jobs the command should operate on. 225A 226.Ar jobspec 227can be: 228.Bl -bullet 229.It 230a single job number, which will match all jobs in the printer's queue 231which have the same job number. 232Eg: 233.Ar 17 , 234.It 235a range of job numbers, which will match all jobs with a number between 236the starting and ending job numbers, inclusive. 237Eg: 238.Ar 21-32 , 239.It 240a specific userid, which will match all jobs which were sent by that 241user. 242Eg: 243.Ar jones , 244.It 245a host name, when prefixed by an `@', which will match all jobs in 246the queue which were sent from the given host. 247Eg: 248.Ar @freebsd.org , 249.It 250a job range and a userid, separated by a `:', which will match all jobs 251which both match the job range and were sent by the specified user. 252Eg: 253.Ar jones:17 254or 255.Ar 21-32:jones , 256.It 257a job range and/or a userid, followed by a host name, which will match 258all jobs which match all the specified criteria. 259Eg: 260.Ar jones@freebsd.org 261or 262.Ar 21-32@freebsd.org 263or 264.Ar jones:17@freebsd.org . 265.El 266.Pp 267The values for userid and host name can also include pattern-matching 268characters, similar to the pattern matching done for filenames in 269most command shells. 270Note that if you enter a 271.Ic topq 272or 273.Ic bottomq 274command as parameters on the initial 275.Nm 276command, then the shell will expand any pattern-matching characters 277that it can (based on what files in finds in the current directory) 278before 279.Nm 280processes the command. 281In that case, any parameters which include pattern-matching characters 282should be enclosed in quotes, so that the shell will not try to 283expand them. 284.Sh FILES 285.Bl -tag -width /var/spool/*/lockx -compact 286.It Pa /etc/printcap 287printer description file 288.It Pa /var/spool/* 289spool directories 290.It Pa /var/spool/*/lock 291lock file for queue control 292.El 293.Sh DIAGNOSTICS 294.Bl -diag 295.It "?Ambiguous command" 296abbreviation matches more than one command 297.It "?Invalid command" 298no match was found 299.It "?Privileged command" 300you must be a member of group "operator" or root to execute this command 301.El 302.Sh SEE ALSO 303.Xr lpq 1 , 304.Xr lpr 1 , 305.Xr lprm 1 , 306.Xr printcap 5 , 307.Xr chkprintcap 8 , 308.Xr lpd 8 309.Sh HISTORY 310The 311.Nm 312utility appeared in 313.Bx 4.2 . 314