COHERENT manpages

This page displays the COHERENT manpage for lpsched [Print jobs spooled with command lp; turn on printer daemon].

List of available manpages
Index


lpsched -- Command

Print jobs spooled with command lp; turn on printer daemon
lpsched

The daemon lpsched prints jobs spooled with the command lp.

Typing the command lpsched by itself launches the daemon.  The rest of this
article describes how lpsched manages printing.

Each file in directory /usr/spooler/mlp/queue is a print job spooled by the
command lp. When lp spools a job, it copies the input (usually a file) into
the spool  directory and appends  to the beginning  of each job  a 192-byte
header that indicates  how the job is to be  printed.  This header includes
such information as  the name of the printer on  which to print the job and
the  date and  time the  job was  spooled.  For a  detailed layout  of this
header, see the Lexicon entry for lp.

lp also assigned each job a seven-character name.  The first character is R
or  r: the  former indicates  that the  job is either  being printed  or is
awaiting  printing; whereas  the  latter indicates  that the  job has  been
printed.  The second character is a digit, from zero to nine, that sets the
job's  priority: zero  gives highest priority,  nine lowest.   (The default
priority is 2.) The  last five characters give a zero-padded identification
number.

lpsched awakens  every 30 seconds or  whenever the command lp  spools a job
for printing.  lpsched  then processes each file in /usr/spooler/mlp/queue.
It reads each job each that  is awaiting printing, the order being dictated
first by  the priority  code and then  by the identification  number (which
indicates the order in which the jobs were spooled).

When lpsched actually prints a job, it performs the following tasks:

-> First, it opens the file that  contains the job to be printed, and reads
   its header.   The header gives  the number of  the job; the  name of the
   user who spooled the job; the  name of the printer device upon which the
   job is  to be printed; the  number of copies to print;  and the title of
   the  job, as  set with  the lp  option -t.  (NB, do  not confuse  an MLP
   ``device,'' which  is set in the  file /usr/spool/mlp/controls, with the
   physical device into which the printer is plugged.)

-> lpsched  then  finds  the  entry  in file  /usr/spool/mlp/controls  that
   describes the  printer device the user requested.   An entry in controls
   is of the form

       printer = banner, /dev/hp, make_banner

   In  this case,  the MLP  device  is named  banner; the  output is  to be
   printed on  physical device  /dev/hp; and the  output is to  be filtered
   through backend script make_banner,  which is a script kept in directory
   /usr/spool/mlp/backend. (For  details on how to  describe an MLP printer
   device, see the Lexicon entry for controls).

-> If the  entry for this  device does not  name a backend  script, lpsched
   copies the  body of  the job  (that is, the  text that you  had spooled)
   without modification to the device by which the printer is accessed.

-> If the entry for this device does name a backend script, lpsched invokes
   the script and redirects its output to the physical device.

When lpsched invokes a backend script, it passes it four arguments: (1) the
number of the  job to be printed, (2) the  login identifier of the user who
spooled the job, (3) the number  of copies to be printed, and (4) the title
of the  job.  The  script can  ignore these arguments,  or use them  in its
filtration  process;  for  example,  it  can  use the  fourth  argument  to
construct a  banner page that is  printed before the job.   For examples of
backend script that  perform various types of sophisticated processing, see
the Lexicon entry for controls.

lpsched uses a system of lock  files to ensure that each device is accessed
in a disciplined manner.  For details on COHERENT's system of building lock
files, see the Lexicon entries for UUCP and libmisc.

To abort the  printing of a job, invoke the  command cancel. Note that this
only affects  jobs that are being  spooled or waiting to  be spooled.  If a
job has been downloaded to a  printer, the only way to abort printing is to
manipulate the printer itself through its front panel and switches.

When a  job has printed successfully, lpsched  changes the status character
in  its  name to  r.   A file  remains  in the  spool  directory until  its
``lifetime'' has expired.  You can reprint a quiescent file by invoking the
command reprint.  To change a job's target  printer, priority, or lifetime,
use the  command chreq.  For details on  these commands, see  their Lexicon
entries.

lpsched  awakens  whenever you  use  the  command lp  to  spool  a job  for
printing.  It  also awakens every  five minutes, whether  or not a  job has
been spooled,  to see if anything  needs to be printed  and check quiescent
files.

After it  has processed every  job that awaits printing,  lpsched reads the
header  of every  quiescent file.   If a  file's ``lifetime''  has expired,
lpsched removes  it.  A file with a temporary  lifetime survives 30 minutes
after spooling;  one with a short-term lifetime survives  24 hours; and one
with a long-term lifetime survives 72 hours.  You can change these defaults
by  editing  controls; for  details,  see  its entry  in  the Lexicon.   By
default, a  job is given a  short-term life expectancy.  To  change a job's
life expectancy, use the command chreq.

The  command lpsched  turns on  lpsched; and command  lpshut turns  it off.
Jobs spooled  while lpsched is  turned off remain spooled  until lpsched is
reawakened.

See Also

Administering COHERENT,
commands,
lp,
lpshut,
printer