Printing directly to the printer.

Scott Amspoker scott at bbxsda.UUCP
Wed Feb 21 07:43:22 AEST 1990


In article <178 at actsn.fay.ar.us> david at actsn.fay.ar.us (David Summers) writes:
>I have a question regarding the way the print spooler works on Xenix:
>Mainly, I need to print directly to the printer (if nothing else is printing
>to it at the time).  Therefore, I need to find out the procedure for locking
>the print spooler.

You will have to modify the spooler interface scripts.  These may be 
found in the directory '/usr/spool/lp/interface'.  There is an
interface script for each printer you have set up.  The basic
idea is to modify the script to create a lock file at the beginning
and remove the lock file at the end.  However, this is not quite
as straight forward as it sounds.  You must guarantee that a
'test-and-set' type of operation is performed without interruption.
This can be accomplished with the following shell code:

----------------
# umask is used to force r--r--r-- permissions on the create
umask 333

# must use sub-shell to redirect error message
( until >$LOCKFILE
    do
	:
    done ) 2>/dev/null;
---------------

The above code will create a lock file with r--r--r-- permissions
or loop until an existing lockfile is removed.

In addition to the above code you will also need to place the following
command immediately after it:

            trap "rm $LOCKFILE; exit 0" 0 15 2 9

This will cause the lockfile to be removed whenever the script
terminates (either normally or by the 'cancel' command).

>I asked this question a few months ago and got the response from several people
>that there was no need to do what I was suggesting.  I think that saving disk
>space is an adequate need.

Obviously these people have never tried to do printer output to pre-printed
forms either.  I called SCO once about the spooler lockfile problem and
they couldn't imagine why I would ever try to write directly to the
printer.  I mentioned that it is diffcult for an operator to interact
with a test pattern being printed on invoice forms when using a spooler.
Their response was, "oh".  

-- 
Scott Amspoker
Basis International, Albuquerque, NM
(505) 345-5232
unmvax.cs.unm.edu!bbx!bbxsda!scott



More information about the Comp.unix.xenix mailing list