简单获取cpu使用率,以及后台运行的问题

做了一个运维平台,有一个功能定时执行一个脚本,获取cpu使用率和内存使用情况到监控平台。

获取cpu使用率使用的是top中的信息。直接运行没有问题。通过nohup xxx.sh & 之后获取不到cpu

信息。

代码如下:CpuRatio=`top -n 1 | awk -F '[ %]+' 'NR==3 {print $2}'`

这段代码也是在网上找的。经过排查发现。top命令默认是标准输出。当脚本后台运行时,标量获取不到top的结果。因此需要给top加一个-b ,标识后台执行。成功解决问题。

代码如下 :CpuRatio=`top -n 1 -b | awk -F '[ %]+' 'NR==3 {print $2}'`

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现安卓设备的CPU使用率监控,可以使用以下步骤: 1. 获取CPU信息:通过读取系统文件/proc/stat,可以获取当前CPU的运行状态,包括总的CPU使用时间、空闲时间等。 2. 计算CPU使用率:根据获取CPU信息,可以计算出当前的CPU使用率。可以利用简单的公式: CPU使用率 = (总的CPU使用时间 - 空闲时间) / 总的CPU使用时间 * 100% 3. 定时更新CPU使用率:为了实时监控CPU使用率,可以使用定时器来定期执行获取CPU信息和计算CPU使用率的操作。 4. 显示CPU使用率:可以在界面上显示当前的CPU使用率,可以使用TextView等控件来显示。 以下是一个简单的示例代码实现: ```java import android.os.Handler; import android.os.HandlerThread; import android.os.Message; public class CpuMonitor { private HandlerThread handlerThread; private Handler handler; private int cpuUsage; public CpuMonitor() { handlerThread = new HandlerThread("CpuMonitorThread"); handlerThread.start(); handler = new Handler(handlerThread.getLooper()) { @Override public void handleMessage(Message msg) { readCpuStat(); sendEmptyMessageDelayed(0, 1000); // 定时更新CPU使用率,间隔为1秒 } }; } public void startMonitor() { handler.sendEmptyMessage(0); } public void stopMonitor() { handler.removeCallbacksAndMessages(null); } public int getCpuUsage() { return cpuUsage; } private void readCpuStat() { // 读取 /proc/stat 文件,解析出总的CPU使用时间和空闲时间等信息 // 计算得到CPU使用率 // 更新cpuUsage变量 } } ``` 上述代码创建了一个CpuMonitor类,其中使用了HandlerThread来在后台线程进行CPU使用率的监控。startMonitor方法用于开启监控,stopMonitor方法用于停止监控。getCpuUsage方法可以获取当前的CPU使用率。readCpuStat方法用于读取/proc/stat文件并计算CPU使用率。 使用该类,可以在安卓应用中实现CPU使用率的监控功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红豆110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值