Hi Tom,
Thank you for your remarks, They helped me to solve my problem under Solaris 8.
When I login as postgres, the paths are known as defined in /etc/profile.
root & postgres are bash users.
no .profile nor .bashrc are defined in the postgres's home dir /dat/pgsql.
I created a .bashrc in the postgres's homedir that was not read by su.
su postgres -c "env" looses LD_LIBRARY_PATH
su - postgres -c "env" looses also PATH (replaced by one directory)
The only way I found to allow postgre launching via /etc/init.d/postgresql
is to add a
RESTORE_LLP="source $PGDATA/.pathrc;"
in the command lines of the postgresql script :
su - $PGUSER -c "$RESTORE_LLP $DAEMON start -D '$PGDATA' -s -l $PGLOG"
with the postgres .pathrc file :
# restore minimal LD_LIBRARY_PATH for postgres running
LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/usr/local/pgsql/lib
export LD_LIBRARY_PATH
Glad to be able to launch postgresql now. Many thanks.
Best regards
Patrice
Tom Lane a écrit :
> Patrice Durosay <patrice.durosay@cgm.cnrs-gif.fr> writes:
> > I reinstalled both readline & postgresql without more success.
> > It seem to be there :
>
> > bash-2.03# ldd /usr/local/pgsql/bin/postgres
> > libz.so => /usr/lib/libz.so
> > libreadline.so.4 => /usr/local/lib/libreadline.so.4
>
> That's a good start, but now look to see what libreadline.so depends on.
>
> Also, if you are depending on LD_LIBRARY_PATH to make the linker find
> these libraries, then make sure that the postgres account's .profile
> sets up LD_LIBRARY_PATH the same way. Remember that "su -" throws away
> your environment and adopts the login environment of the target account.