zoukankan      html  css  js  c++  java
  • 编写shell脚本kill掉占用cpu超过90%以上的程序

    由于集群用户经常会不懂如何提交作业,将作业直接运行到登录节点上,这样导致登录节点的cpu及内存占用很大,导致其他用户甚至无法登录。所以就想到了一种解决方法,写一个shell脚本,常驻登录节点,监控cpu占用率,如果某一进程占用cpu超过90%,且运行时间超过十五秒,就直接kill掉。shell脚本代码如下:

    #!/bin/sh

    while true

    do

        sleep3

       #循环查看占用cpu超过90%的进程ID
       /bin/ps axf -o "pid %cpu" | awk '{if($2>=90) print $1}' | while read procid
       do

         #进程详细信息
         pro=$(ps -A|grep "\<$procid\>" |sort -k3,3|head -n1)
         #获取进程运行的时间,如果大于15秒,设time为1,如若不是则设time为0
         time="$(echo $pro|awk '{
            split($3,tab,/:/); if (tab[3]>=15) {print 1}else{print 0}
         }')"

        #如果time1,则kill掉该进程

        if [ $time = '1' ];then

          kill -9 $procid
        fi
       done
    done

    最后运行 nohup ./你写的shell脚本  > cpucheck.log 2>&1 &   以保证它在后台长期运行

  • 相关阅读:
    mongodb.open失效导致访问地址404
    使用Express创建一个简单的示例
    CommonJs的模块规范
    javascript递归
    python入门简书2
    Python入门小白
    场景图层介绍
    在三维地图上改变相机的左右和上下视图
    显示/隐藏地面高程
    给要素图层添加信息窗口
  • 原文地址:https://www.cnblogs.com/ninicwang/p/10736388.html
Copyright © 2011-2022 走看看