How to run application for a set time in shell
If and How is it possible to, in Terminal
, to get an application to run for 30 seconds, before being force closed, and echoing the logs of that process?
Solution 1:
You might want to use the timeout command.
timeout -k 10s 30s command
which will run the command for 30s and kill it after 10s if still running. - Check the manpage for more options.
Solution 2:
Here are two ways (but the timeout
command suggested by mcantsin is probably better):
-
Launch the command in the background, that way its PID is saved in
$!
and you can use that to kill it after the specified time:command & sleep 30 && kill $!
-
Launch the command and use
pkill
orkillall
to kill it. CAUTION: This assumes that only one command with that name is running, I am usingfirefox
as an example:firefox & sleep 30 && pkill firefox
I have no idea what you mean by "the logs of that process" but a process's standard error can be saved to a file with command 2> logfile.txt
.