De eerste 'wait' in je script lijkt me zinloos, omdat je niks in de achtergrond hebt lopen.
Je loop wordt telkens uitgevoerd, totdat ('player stingray.cfg' -1 seconde van de sleep) + example0 er samen een keer langer dan 5 seconden over hebben gedaan. Heeft het korter gedraaid, dan start je beiden nog een keer op. Mag, maar ik snap niet goed wat je er mee wil aantonen.
Als je example0 wilt monitoren en na een bepaalde tijd wilt afbreken zul je het VOOR de loop in de achtergrond moeten starten, periodiek checken of het nog draait en na de timeout er een kill-commando heen sturen. En dan liever een SIGINT dan een SIGKILL.
Je commando example0 is dan wel verantwoordelijk voor het afhandelen van de interrupt. Als je niks regelt wordt SIGINT (Lees: <CTRL>-C) waarschijnlijk wel correct afgehandeld, maar het hangt er van af of example0 onder water commando's uitvoert die SIGINT negeren. (Zal niet, doorgaans.)
Kijk eens of je van deze links iets wijzer wordt, ik ben er niet in gedoken.
http://www.bashcookbook.com/bashinfo/source/bash-4.0/examples/scripts/timeouthttp://www.bashcookbook.com/bashinfo/source/bash-4.0/examples/scripts/timeout2http://www.bashcookbook.com/bashinfo/source/bash-4.0/examples/scripts/timeout3Met loopjes met sleeps om processen in de gaten te houden heb je altijd een overkill aan processing. Ofwel je
loopt honderden keren voor jan met de korte achternaam, of je
sleep ligt nog te snurken terwijl je te monitoren proces al lang klaar is.
Je wil eigenlijk een wait combineren met een timeout, zodat wie het eerst komt, het eerst maalt.
In Perl kan ik dat wel (met Perl Cookbook ernaast).
Ik heb zo snel geen nette Bash-oplossing hiervoor gezien. Maar ik ben absoluut geen Bash-held, dus dat zegt niks!