You can create a script like this:
Code:
#!/bin/bash
command &
sleep 1800 # 30*60 seconds
kill $! # $! contains PID of the last background executed process
If you need more precision you can use a while loop instead of sleep:
Code:
#!/bin/bash
end=$(date -d "+30 minutes" '+%s')
command &
while [ "$(date '+%s')" -lt "$end" ]; do
sleep 1;
done
kill $!