I had to create this batch file

gp -q < xaa > xaa.results &
echo "$!" | sed "s/^/ps -p /" > x.pid
gp -q < xab > xab.results &
echo "$!" | sed "s/^/ps -p /" >> x.pid
gp -q < xac > xac.results &
echo "$!" | sed "s/^/ps -p /" >> x.pid
gp -q < xad > xad.results &
echo "$!" | sed "s/^/ps -p /" >> x.pid
gp -q < xae > xae.results &
echo "$!" | sed "s/^/ps -p /" >> x.pid
gp -q < xaf > xaf.results &
echo "$!" | sed "s/^/ps -p /" >> x.pid
sz=1
while [ $sz -gt 0 ] ; do
  sz=`bash x.pid | grep -v "PID TTY" | wc -c`
done
rm x.pid
which runs to completion after all the scripts terminated. This is very trusting, for example we could get a hang and then get stuck in a non-terminating loop.


On 10/6/24 19:16, Bill Barry wrote:
On Sun, Oct 6, 2024 at 8:25 PM American Citizen
<[email protected]> wrote:
To all:

I have a simple batch file which has 6 CLI commands to it

gp -q < xaa > xaa.results &

gp -q < xab > xab.results &

gp -q < xac > xac.results &

gp -q < xad > xad.results &

gp -q < xae > xae.results &

gp -q < xaf > xaf.results &

When I do a simple "% bash do-x.sh" which is the bash script, it runs
normally

but due to the redirect commands, doing the "ps -fx" will only return
the gp command (along with all live commands the system is running) but
I don't know which xaa, or xab, or xac, etc it is associated with.

Is there some way to do a "ps -fax | grep gp" command which locates
exactly the pids involved? And can these results be returned as a simple
ascii file, so I can do future inquiries to determine when the program
has stopped running?

The goal here is to determine when all 6 programs running "gp" have
terminated.

Randall


Since bash runs them all 6 commands sequentially you can put one more
command at the end that tells you all is finished like
echo Finished

Bill

Reply via email to