[HCoop-Help] Daemon with access to environment variables

Davor Ocelic docelic at hcoop.net
Sat Apr 4 08:19:47 EDT 2009


On Sat, 4 Apr 2009 13:09:55 +0100
Michal <michal at hcoop.net> wrote:

> Hi,
> 
> Thanks for your replay: I've now tried that, but I can't get it to
> work.
> 
> More specifically, my daemon uses a shared library. The location of
> which I have specified in my LD_LIBRARY_PATH / LIBRARY_PATH variable
> (ok, I'm not sure which one is right, so I just set both) It runs fine
> running it directly from the command line in the foreground as a usual
> command. However, with run-in-pagsh I get:
> 
> error while loading shared libraries: libgsasl.so.7: cannot open
> shared object file: No such file or directory
> 
> Also, in my wrapper script I manually echo the value of the variables
> just before my daemon is called. They are set right: it seems like
> they are not 'transferred' into the environment of the daemon.

Right. echo is not a good indicator because within the process it'll
work, but outside of it it's not guaranteed. A variable has to be
exported if you want it to propagate to child processes.

So, do something like:

export VAR1=VAL1
...


I think this will solve your problem with LD_LIBRARY_PATH as
well. (Btw, the LD_ is the correct one).

Another thing, just to mention, that you can use to 
resolve ld issues is preloading specifically, such as:

LD_PRELOAD=/path/to/libgsasl.so.7 .....

In that case you'd also want to have it immediately preceeding
the command (i.e. LD_PRELOAD=... <command>) and not 
exported with 'export LD_PRELOAD', because then it would
be preloaded for all commands you start from that shell,
which doesn't really hurt, but isn't optimal.

Tell us how it goes.

Cya,
-doc



More information about the HCoop-Help mailing list