Этот сценарий - то, что я придумала наконец.Надеюсь, это кому-нибудь поможет.$!даст pid, и ps должен быть использован, чтобы найти его gid.при использовании ps перед ним было дополнительное пространство, следующая строка расширения переменной удаляет начальное пространство.Наконец, после ожидания основного процесса, он убивает группу.
#!/bin/sh -x
setsid "$@" &
pid=$!
gidspace=$(ps -o pgid= $pid)
gid="${gidspace## }"
echo "gid $gid"
echo "waiting"
wait $pid
ps -s $gid -o pid,ppid,pgid,command
kill -- -$gid