Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15293

Re: Async processes started in functions not reliably started

Path csiph.com!3.eu.feeder.erje.net!feeder.erje.net!goblin1!goblin.stu.neva.ru!usenet.stanford.edu!not-for-mail
From Steffen Nurpmeso <steffen@sdaoden.eu>
Newsgroups gnu.bash.bug
Subject Re: Async processes started in functions not reliably started
Date Sun, 04 Aug 2019 01:17:15 +0200
Lines 63
Approved bug-bash@gnu.org
Message-ID <mailman.769.1564881130.1985.bug-bash@gnu.org> (permalink)
References <20190803224008.dVNLU%steffen@sdaoden.eu> <20190803231715.YFelC%steffen@sdaoden.eu>
NNTP-Posting-Host lists.gnu.org
X-Trace usenet.stanford.edu 1564881131 29022 209.51.188.17 (4 Aug 2019 01:12:11 GMT)
X-Complaints-To action@cs.stanford.edu
To bug-bash@gnu.org
Envelope-to bug-bash@gnu.org
In-Reply-To <20190803224008.dVNLU%steffen@sdaoden.eu>
Mail-Followup-To bug-bash@gnu.org, Steffen Nurpmeso <steffen@sdaoden.eu>
User-Agent s-nail v14.9.14-3-g96dc286e
OpenPGP id=EE19E1C1F2F7054F8D3954D8308964B51883A0DD; url=https://ftp.sdaoden.eu/steffen.asc; preference=signencrypt
BlahBlahBlah Any stupid boy can crush a beetle. But all the professors in the world can make no bugs.
X-detected-operating-system by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From 217.144.132.164
X-Mailman-Approved-At Sat, 03 Aug 2019 21:12:09 -0400
X-BeenThere bug-bash@gnu.org
X-Mailman-Version 2.1.23
Precedence list
List-Id Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <https://lists.gnu.org/archive/html/bug-bash>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
X-Mailman-Original-Message-ID <20190803231715.YFelC%steffen@sdaoden.eu>
X-Mailman-Original-References <20190803224008.dVNLU%steffen@sdaoden.eu>
Xref csiph.com gnu.bash.bug:15293

Show key headers only | View raw


Steffen Nurpmeso wrote in <20190803224008.dVNLU%steffen@sdaoden.eu>:
  ...
 |wanted to add a reaper process which automatically kills tests
 |which need longer than X seconds.  That turns out to be more
 ..
 |  echo shell is $SHELL/$0
 |   (
 |      int= hot=
 |      echo 'Starting job reaper'
 |      trap 'int=1 hot=1' HUP
 |      trap 'int=1 hot=' INT
 |      trap 'echo "Stopping job reaper"; exit 0' TERM
 |      trap '' EXIT
 |
 |      while [ 1 ]; do
 |         int=
 |         sleep ${JOBWAIT} &
 |         wait
 |         if [ -z "${int}" ] && [ -n "${hot}" ]; then
 |            i=0 l=
 |            while [ ${i} -lt ${MAXJOBS} ]; do
 |               i=`add ${i} 1`
 |
 |               if [ -f t.${i}.pid ] && read p < t.${i}.pid; then
 |                  kill -KILL ${p}
 |                  ${rm} -f t.${i}.result
 |                  l="${l} ${i}"
 |               fi
 |            done
 |            [ -n "${l}" ] &&
 |               printf '%s!! Reaped job(s)%s after %s seconds%s\n' \
 |                  "${COLOR_ERR_ON}" "${l}" ${JOBWAIT} "${COLOR_ERR_OFF}"
 |         fi
 |      done
 |   ) </dev/null & #>/dev/null 2>&1 &
 |   JOBREAPER=$!

Seems to work much, much better even inside a function, and even
inside dash if i add the trap

      trap 'echo "Started job reaper successfully"' USR1

inside, and instead of JOBREAPER=$!

   i=${!}

   sleep 1
   if kill -USR1 ${i} >/dev/null 2>&1; then
      JOBREAPER=${i}
   else
      printf "%s!! Incapable shell, cannot start zombie child reaper%s\n" \
         "${COLOR_ERR_ON}" "${COLOR_ERR_OFF}"
   fi

But understand i do not.

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: Async processes started in functions not reliably started Steffen Nurpmeso <steffen@sdaoden.eu> - 2019-08-04 01:17 +0200

csiph-web