BRENDAN LUNA on wrote...
| When printing to our hp8100 printers it seems that the postscript
| files leave a ifhpXXXX file in the spool directory (ex: ifhp8HyahL).
| Is this a problem with ifhp not cleaning up after itself? The file
| contains the postscript of the job printed. I am running ifhp3.5.10
| and LPRng3.8.12.
|
| Thanks, Brendan
|
The following is long and rambling.... Please feel feel to pick it
apart and discuss on the list. I would love to hear other opinions on the
ifhpXXXX file problem.
In the process of setting up our new major print server I have also seen
the creation and non-cleanup of ihfpXXXX files. Particularly when a file
is filtered multiple times for various reasons.
Every time ifhp calls a conversion filter, one ifhpXXXX file is created
to hold the output from that filter. It then fails to clean up that
file when it is no longer required!
For Example.. If you print a 4Mbyte gziped tiif image, then that may (if
your filters are set up for it) a 10Mbyte TIFF image in a ifhpXXX file,
which is filtered to a 17 Mbyte Postscript ifhpXXX file, before finally
being sent to the printer! Resulting in two LARGE ifhpXXX, left behind
by the ifhp filter.
Solution...
My feeling is that as long as each printer has its own spooling
directory, you can probably just add a "rm ifhp*" command into the final
"jobend" accounting filter call. Acutally you could also probably do
this at any of the accounting calls (jobstart, filestart, fileend), as
none of the ifhpXXX conversion file at that point would no longer be
required, at least for this particualr printer.
However that still means a large print job could require at least 2 or 3
times that amount of disk space available on a print server in order to
print. And if the ifhpXXX files don't get cleaned up, that extra space
is not recovered.
Hmm -- as a untested idea. Each filter could truncate the
file being read from STDIN when its finished with it.
EG: in the filter is perl controled do a
seek(STDIN, 0, 0); truncate(STDIN, 0);
just before it exists so the system can get the disk space back.
WARNING: this would also truncate the original source dfXXXX data file
making job repeats a problem. It will also leave empty "ifhpXXXX" files
but as mentioned above they can be cleaned up at jobend accounting.
Another idea... All conversion filters and the "file" test always reads
from \%s{inputfile}, which is always the "dfXXXX" file itself. At the
end of each conversion the script, replaces the "dfXXXX" file with the
output of the convertion filter. The disadvantage, the original source
file recieved from the user is modified, but then on a repeated job, it
does not need to be filtered again! Watch out for options you create
like "-Zpsnup=4" to do Nup (multiple pages per output page) postscript
to postscript conversions!
ASIDE: My previous print filter, a perl program called "psprint", which
did a simular job to ifhp (talking to and accounting for postscript
printers), did not have this problem.
The way it worked was that the print job was first given to a "filter
selection" script. This script used "file" and other things to work out
a "shell filter command" which will do the conversion. The program then
internally pipelined the dfXXX file into stdin of the shell comamnd
and sent the buffered output of the command on to the printer. No
temporary files were saved (unless the shell pipeline did this for DVI
files), and filter selection was complete externally controled.
Unfortunatally "psprint" was written badly (I only just learnt perl at
that time, 7 years ago), and has been the bane of my existance for some
time. However it did the job, and provided the required accounting,
before LPRng became what it is today.
Any other solutions welcome. I am in a position go in any direction in
the setup of a large unversity wide print server.
Anthony Thyssen ( System Programmer ) http://www.sct.gu.edu.au/~anthony/
-----------------------------------------------------------------------------
Laws of Computer Programming #7 :-
Program complexity grows until it exceeds the capability of the
programmer who must maintain it.
SIGPLAN Notices, Vol. 2 No 2
-----------------------------------------------------------------------------
Anthony's Home is his Castle http://www.sct.gu.edu.au/~anthony/
-----------------------------------------------------------------------------
YOU MUST BE A LIST MEMBER IN ORDER TO POST TO THE LPRNG MAILING LIST
The address you post from MUST be your subscription address
If you need help, send email to [EMAIL PROTECTED] (or lprng-requests
or lprng-digest-requests) with the word 'help' in the body. For the impatient,
to subscribe to a list with name LIST, send mail to [EMAIL PROTECTED]
with: | example:
subscribe LIST <mailaddr> | subscribe lprng-digest [EMAIL PROTECTED]
unsubscribe LIST <mailaddr> | unsubscribe lprng [EMAIL PROTECTED]
If you have major problems, send email to [EMAIL PROTECTED] with the word
LPRNGLIST in the SUBJECT line.
-----------------------------------------------------------------------------