?
Solved

DVIPS fails in printer filter

Posted on 1998-10-07
2
Medium Priority
?
265 Views
Last Modified: 2010-04-20
I'm using a printer filter that recognizes a DVI file and sends it through dvips and gs before printing it.

This works okay if all my fonts exist beforehand, but if dvips has to generate the fonts, it fails.

Dvips invokes MakeTeXPK, which then dies with the error message "No child process".

But if I invoke the printer filter directly from the command line, everything works fine. It only fails if
the printer filter is called by lpd.

I've tried checking various ulimit settings and my PATH environment, but everything looks right. I've recompiled lpd. I've replaced the standard RedHat printer filter with one of my own invention, but the result is always the same.

Any ideas?
0
Comment
Question by:cto
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 

Accepted Solution

by:
narzola earned 400 total points
ID: 1638233
My guess is that you have a permission/access problem.

The following procedure will determine if this is the case.  (Please note that this procedure will make the LPD daemon run as root which makes your system less secure.  Undo this change as soon as you have verified whether or not you have permission problem).

      (1) Using your favorite text editor, open the file /etc/passwd.

      (2) Find the line that begins with 'lp:'.  On my system it looks like:

            lp:*:4:7:lp:/var/spool/lpd:

      (3) Write down the number that appears after the second colon.  You will need this later to undo this change.  On my system, this number is '4'.

      (4) Change the number after the second colon into a zero.  on my system, the change would be:

            lp:*:0:7:lp:/var/spool/lpd:

      (5) Reboot your system

      (6) Attempt to make a printout using lpr.

      (7) Undo the change you made in step 4.

      (8) Reboot your system

If the printout worked in Step 6, then your problem is that LPD does not have sufficient permissions to create the needed fonts.  You can fix this problem in one of two ways.

(1) Make the directory where the fonts are created writable to the user 'lp'.  This may not be practical because, for some TeX/LaTeX installations, this means making the directory world writable.

(2) Change the scripts so that fonts get created in /tmp.  This is probably the better solution.  You will need to monitor which fonts are getting created on the fly.  If you see that a particular font is always being created, then you can run MakeTeXPK manually to permanently create the font.
0
 

Author Comment

by:cto
ID: 1638234
No, this didn't do the trick. Even if I run lpd as root, dvips still produces output like this on standard error:

kpathsea: Running MakeTeXPK ecbx1095 600 600 1+0/600 ljfour
MakeTeXPK: running mf...gftopk...pk...done.
MakeTeXPK ecbx1095 600 600 1+0/600 ljfour: No child processes

0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Using 'screen' for session sharing, The Simple Edition Step 1: user starts session with command: screen Step 2: other user (logged in with same user account) connects with command: screen -x Done. Both users are connected to the same CLI sessio…
I. Introduction There's an interesting discussion going on now in an Experts Exchange Group — Attachments with no extension (http://www.experts-exchange.com/discussions/210281/Attachments-with-no-extension.html). This reminded me of questions tha…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
Suggested Courses
Course of the Month12 days, 20 hours left to enroll

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question