Date: Thu, 22 Jan 2009 12:41:14 -0800 From: Nerius Landys <nlandys@gmail.com> To: freebsd-questions@freebsd.org Subject: shell scripting, how to auto-timeout? Message-ID: <560f92640901221241y4fc1620aree083a812c1f3c8d@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
This is a shell scripting question, it is not specific to FreeBSD. I am writing a script that I want to terminate after 1 second (because it has the potential to infinite loop). The script I have so far is: #!/bin/sh cd `dirname "$0"` CLASSPATH=mapgen.jar export CLASSPATH /usr/local/bin/java PipeGenerator $* The java process has the potential to run forever, and I want it to run for at most 1 second then get killed. I could write a parent script that somehow gets the PID of the child script, but the problem is that the java program writes to standard out, the result of the program is written to standard out. I also don't really want to share a PID with a temporary file. So what I might do is this: /usr/local/bin/java PipeGenerator $* & sleep 1 <kill the java command if not already killed> Also with the above code I would be waiting for 1 second even if the java process finished sooner. But that is a penalty I'm willing to pay, unless there is a more elegant solution. How do I do this?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?560f92640901221241y4fc1620aree083a812c1f3c8d>