【发布时间】:2019-04-06 15:49:06
【问题描述】:
我有 bash 脚本,它调用了许多命令,包括 TOP 命令。 我的问题是如何以编程方式终止 TOP 命令并将控制权交还给脚本,以便它可以继续运行?
谢谢
【问题讨论】:
-
您想在同一个脚本或另一个脚本中执行此操作吗?您不能在同一个脚本中执行此操作,因为该脚本在
top退出之前不会继续。
我有 bash 脚本,它调用了许多命令,包括 TOP 命令。 我的问题是如何以编程方式终止 TOP 命令并将控制权交还给脚本,以便它可以继续运行?
谢谢
【问题讨论】:
top 退出之前不会继续。
将迭代选项-n number 与-d delay 结合使用。
top -d2 -n10
... 完成这项工作大约需要 18 秒加上更多时间(第一次和最后一次之间的时间 = 9*2s + 执行时间)。
【讨论】:
如果您希望脚本在前台启动 top 一段时间,请使用 timeout 命令:
timeout --foreground 30s top
在顶部运行 30 秒。
【讨论】:
如果您想稍后在没有用户交互的情况下将其杀死,则不确定首先从脚本中启动 top 是什么。也许启动 top 并使用 & 运算符将其分离就足够了,因此您的脚本不会被阻止:
#!/bin/bash
echo "before"
top &
echo "after"
【讨论】: