[comp.unix.questions] Hacking the SYSV Spooler.

russell@imtec.co.uk (Russell Brown) (08/30/88)

This question only refers to SYS V - Berklyites should press n :-)

Please correct me if I am wrong (sure someone will :-) but I can't find
any simple way to support different types of stationary under the
System V spooler.

What's needed is some mechanism whereby jobs can send output to the
spooler indicating the required stationary (letterhead, narrow plain,
wide plain, multipart, pretty paper with flowers on etc etc)

The spooler beasty should only print those jobs that match the
currently loaded paper type, holding all other jobs in the queue until
the system admin changes the paper (and tells the spooler!).

To make this workable, a number of tools will be required to
interrogate the queues, tell the spooler we are about to change the
paper and detect that the spooler has stopped output.

Anyone have any ideas on how to achieve this? is hacking an interface
program the correct approach? The file formats in /usr/spool/lp are
not documented :-( and we do not have source :-( :-(

Comments? Ideas? Email and I will summarise if an interest is shown.

Thanks in advance,
	Russell

-- 
 ---------------------------------------------------------------
|  Russell Brown                 | Voice: 0733-66852            |
|  Imtec plc                     | EMAIL: russell@imtec.co.uk   |
|  7 Fitzwilliam Suite,          | UUCP:                        |
|  Broadway Court, Peterborough, |  ...mcvax!ukc!imtec!russell  |
|  Britain, PE1 1SQ              |                              |
 ---------------------------------------------------------------

pls@sortac.UUCP (Pat Sullivan) (09/01/88)

In article <750@imtec.co.uk> russell@imtec.co.uk (Russell Brown) writes:
+This question only refers to SYS V - Berklyites should press n :-)
+                             ^^^^^
+ ... simple way to support different types of stationary under the
+System V spooler.

Set up (lpadmin) a printer (-p) and class (-c) for each different type
of stationery; use the same device (-v) for all classes.
The printer administrator needs to "disable" all printers other than
the one for which the proper stationery is loaded and "enable" just
that one.

=================================================================
Pat Sullivan - {att|gatech|akgua}!sortac!pls - voice 404-573-7382

  (-:) our printer is only stationary when the papar jams (:-)

woods@gpu.utcs.toronto.edu (Greg Woods) (09/02/88)

In article <750@imtec.co.uk> russell@imtec.co.uk (Russell Brown) writes:
>Please correct me if I am wrong (sure someone will :-) but I can't find
>any simple way to support different types of stationary under the
>System V spooler.  
>
[exact definition of problem deleted]

Use printer queue "classes".  I've often seen the queue class type used
to specify printer types (ie: dotmatrix, line, laser), or to specify
priorities (ie: now, pm, low).  There is no reason why the printer class
could not be used to specify form type.  Either a printer name, or class
may be specified as an option to the lp command.

The commands enable and disable will allow you to specify what type of
form is currently loaded.  Accept and reject can also be used for longer
term availability.

>To make this workable, a number of tools will be required to
>interrogate the queues, tell the spooler we are about to change the
>paper and detect that the spooler has stopped output.

A bunch of shell scripts that call enable, disable, accept, reject, and
lpadmin could be written to control the currently loaded paper type,
document the class names, add new form types, and such would make this a
user-friendly scheme.  However, an experiences superuser should have no
trouble without.  A simple cron deamon could let the system
administrator know that there are an abundance of jobs waiting in a
particular queue.  Mind you, most administrators aren't always available
to change paper and re-configure the spooler!  They've often got more
important things to do -- like fixing bugs in all the free software they
get off the net :-).

[ I have responded on the net because I have previously answered a lot
of questions about the Sys V lp spooler.  I don't think many people have
looked at the full capablilty of this almost unique spooler.  The
front-end commands above give it a tremendous degree of flexibility at a
very low cost.  By writing appropriate interface scripts for the
"back-end", the lp spooler can be used for many types of batch
applications. ]
-- 
						Greg Woods.

UUCP: utgpu!woods, utgpu!{ontmoh, ontmoh!ixpierre}!woods
VOICE: (416) 242-7572 [h]		LOCATION: Toronto, Ontario, Canada