[ale] bash script with su

Jim Kinney jim.kinney at gmail.com
Mon Jun 8 10:18:57 EDT 2009


I have bash script that does a gazillion things. EXCEPT two of the
"su" lines don't do anything.

user batadm and postgres are created (correctly - they works) followed by:

echo 'export PGHOME=/usr/local/postgresql
export PGDATA=/data/pgdata
export PATH=$PGHOME/bin:$PATH
' >> /home/postgres/.bashrc

which should set the path to the custom postgresql binaries

now run

su -l -c "initdb && pg_ctl start && createlang plpgsql template1 &&
createdb batadm && createuser -s batadm " postgres >>$log 2>&1

where $log is a file defined earlier for install data capture. At this
point it shows an execute of initdb and then nothing.

Does the -c "stuff" just refuse to run sequential comands? I did the
manual su -l batadm and ran the same command sequence successfully
after totally deleting all the initdb files structure in postgresql.
So the stuff inside the quotes works. $PATH _should_ be updated for
the postgres user by the su -l  .

The same type of "nothing happens" error occurs later when the batadm
user is called to do a series of new sql script inits for the new
batadm database. Run manually, the process is fine. Run in a su -l
sequence of &&'ed calls it fails and generates no error message.

Ideas?

-- 
-- 
James P. Kinney III
Actively in pursuit of Life, Liberty and Happiness


More information about the Ale mailing list