如何在shell中运行应用程序一段时间
如果以及如何在Terminal
中使应用程序运行30秒,然后强制关闭,并回显该进程的日志?
您可能希望使用timeout命令。
timeout -k 10s 30s command
如果仍在运行,它将运行30秒的命令并在10秒后杀死它。 – 查看联机帮助页以获取更多选项。
这有两种方式(但是mcantsin建议的timeout
命令可能更好):
-
在后台启动命令,这样它的PID保存在
$!
并且你可以使用它在指定的时间后杀死它:command & sleep 30 && kill $!
-
启动命令并使用
pkill
或killall
将其杀死。 注意:这假设只有一个具有该名称的命令正在运行,我使用firefox
作为示例:firefox & sleep 30 && pkill firefox
我不知道“该进程的日志”是什么意思,但是可以使用command 2> logfile.txt
将进程的标准错误保存到文件中。