繁体   English   中英

在Linux上运行“ top”命令几分钟,然后在perl中退出系统命令

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM