PATH variable in lpd's process

Bertram Scharpf lists at bertram-scharpf.de
Mon Dec 21 16:43:42 UTC 2015


Hi,

in my "/etc/printcap", the "if" field points to an input
filter I wrote in Ruby. There, the first line is a shebang
saying

  #!/usr/bin/env ruby

Further there is

  # procstat -e `pgrep lpd`
    PID COMM             ENVIRONMENT
    940 lpd              PATH=/sbin:/bin:/usr/sbin:/usr/bin PWD=/ HOME=/ RC_PID=20

As you can easily see, I will receive a mail saying the
print job failed because of

  env: ruby: No such file or directory

When I restart "lpd" from the command line, the new process
receives the environment variables from the shell process
and everything ist fine.

So far I found two ways to solve this neither of them I like
very much:

  - Tweaking the PATH variable in "etc/rc" in the source
    tree and reinstall by "make distribution".

  - Patching the filter programms installation method to
    modify the shebang line using "/usr/local/bin/ruby".

"/etc/crontab" allows to reset the PATH variable but I do
not see a way to do the same in "/etc/printcap".

Is there a better way to solve my problem and is there a
recommended one?

Bertram


-- 
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de


More information about the freebsd-questions mailing list