如果以及如何让Terminal
应用程序运行 30 秒,然后强制关闭,并回显该过程的日志?
答案1
你可能想要使用暂停命令。
timeout -k 10s 30s command
它将运行命令 30 秒,如果仍在运行,则在 10 秒后终止它。 - 查看手册页以了解更多选项。
答案2
这里有两种方法(但timeout
命令mcantsin 建议可能更好):
在后台启动该命令,这样它的 PID 就会被保存,
$!
您可以在指定时间后使用它来终止它:command & sleep 30 && kill $!
启动命令并使用
pkill
或killall
终止它。注意:这假设只有一个同名的命令正在运行,我将其用作firefox
示例:firefox & sleep 30 && pkill firefox
我不知道您所说的“该进程的日志”是什么意思,但可以使用 保存到文件中command 2> logfile.txt
。