How to run a process with a timeout in Bash? [duplicate]
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.
Some machines don't have timeout
installed/available. In that case, you could background the process; its PID then gets stored as $!
; then sleep for the required amount of time, then kill it:
some_command arg1 arg2 &TASK_PID=$!sleep 15kill $TASK_PID
At this URL I find that there are mentioned, more than one solutions to make this happen.