rc script to let a service wait for db available

From: Axel Rau <Axel.Rau_at_Chaos1.DE>
Date: Wed, 27 Apr 2022 14:30:20 UTC
Hi all,

I have this rc script:
- - -
meteoavg_wfphost="dbb3"
meteoavg_wfpuser="meteo"
meteoavg_wfpdb="operations"
#
#

. /etc/rc.subr

name="meteoavg"
rcvar=${name}_enable
command=/usr/local/bin/meteoavg

load_rc_config $name

: ${meteoavg_enable="NO"}
: ${meteoavg_flags=" -l syslog:daemon -s Chaos1"}

: ${meteoavg_pidfile="/var/run/meteoavg-Chaos1.pid"}

pidfile="${meteoavg_pidfile}"

##start_cmd="${name}_start"
stop_precmd="${name}_prestop"

meteoavg_start() {
     /usr/local/bin/wait_for_pgsql.sh ${meteoavg_wfphost} \
  	${meteoavg_wfpuser} ${meteoavg_wfpdb} \
	"/usr/local/bin/${name} ${meteoavg_flags} &"
}

meteoavg_prestop() {
     /bin/pkill wait_for_pgsql.sh || /usr/bin/true
}
- - -
wait_for_pgsql.sh :
- - -
#!/bin/sh

host="$1"
user="$2"
db="$3"
start_cmd="$4"

while ! /usr/local/bin/psql -h $host -U $user -d $db -c 'SELECT 1;' 
 >/dev/null 2>&1; do
     sleep 5
done

$start_cmd
- - -
The rc ignores the '&' and waits for wait_for_pgsql.sh to complete.

How can I let rc continue without waiting?

Any help appreciated,
Axel
-- 
PGP-Key: CDE74120  ☀  computing @ chaos claudius