How to run a process with a timeout in Bash?

AlanF picture AlanF · Apr 19, 2012 · Viewed 82.6k times · Source

Possible Duplicate:
Bash script that kills a child process after a given timeout

Is there a way to write a shell script that would execute a certain command for 15 seconds, then kill the command?

I have tried sleep, wait and ping but maybe I am using them wrong.

Answer

Karoly Horvath picture Karoly Horvath · Apr 19, 2012

Use the timeout command:

timeout 15s command

Note: on some systems you need to install coreutils, on others it's missing or has different command line arguments. See an alternate solution posted by @ArjunShankar . Based on it you can encapsulate that boiler-plate code and create your own portable timeout script or small C app that does the same thing.