On 11/3/06, Pádraig Brady <P at draigbrady.com> wrote:
> > Kieran Tully wrote:
> >
> >>Is there a standard way to impose a time limit on a child process, and
> >
> > I guess you could do it with trap?
> >
> > #!/bin/sh
> > trap exit 17
> > sleep 900&
> > potentially_long_command
I tried this yesterday, but couldn't get SIGCHLD to trigger.
I knocked up a script using kill -ALRM $$ instead.
It worked, but there were some cleanup subtleties I had yet to iron
out, at which point I was going to post the script, but you beat me to
it!
> Did this on the train this morning:
>http://www.pixelbeat.org/scripts/timeout
Thanks for that. From what I can see, the set -m in your script is
necessary for the SIGCHLD approach to work in non-interactive shells.
As your comments point out, a script with a similar purpose lives at
/usr/share/doc/bash*/scripts/timeout
But it busy-waits, and there is a race condition, as the PIDs to kill
could be reallocated between busy-wait intervals (may explain why it's
not executable by default on the systems I checked!).
So I may well go with your script. Thanks again,
--
Kieran Tully, Software Developer and Tenor, http://kieran.tul.ly
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!