[英]Running 'top' command of linux for few minutes and then come out of system command in perl
我是Perl的新手。 我正在使用必须提供CPU和内存监视数据的Web UI,因此我正在使用top和gnuplot命令。 我可以通过终端来做到这一点。 但是当我用perl脚本执行相同的命令时,它不起作用。 我遇到的问题是,每当我在终端中执行top命令时,都必须等待几分钟,然后才必须使用GNUPLOT对其进行绘制,但是当我在perl中使用system命令执行相同的工作时,我无法给那个延迟。
这是我在做什么
system "top -p 1758 -b -d5 | tee -a stats.log";
system "./top_stats.sh -f stats.log"
这里的1758是应用程序ID,我必须监视其最重要的数据,而stats.log文件是我保存日志的位置,然后将这个stats.log文件用作top_stats.sh脚本的输入(正在绘制图形)。 此top_stats.sh脚本获取日志文件并使用gnuplot绘制数据
现在的问题是,每当我在终端中执行此第一个系统命令时,我都必须等待一段时间(例如2到3分钟)以拥有足够数量的数据点,然后我必须按Ctrl + C才能显示出顶部命令,然后运行脚本。 但是在这里,一旦遇到第一个系统命令,它将立即执行,然后立即执行下一个命令,因此我没有得到任何数据点来绘制图形。 有什么方法可以执行我的第一个命令并等待3分钟而又不会退出系统命令,然后执行下一个命令。
有什么方法可以执行我的第一个命令并等待3分钟而又不会退出系统命令,然后执行下一个命令。
为什么不为top
指定迭代次数。 因此,您的命令将运行(N-1)* 5秒。 以5秒为间隔的37次迭代将花费36 * 5秒:
system "top -p 1758 -b -d5 -n37 | tee -a stats.log && ./top_stats.sh -f stats.log";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.