簡體   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