shell脚本监控调度器/proc进程是否运行(嵌套循环)

/proc/<pid>/schedstat

$cat /proc/28733/schedstat

5726055470233 30451531 6336
First: time spent on the cpu, task->se.sum_exec_runtime,这个值与上面的se.sum_exec_runtime一样只是上面的除于1,000,000
Second:time spent waiting on a runqueue,这个值与上面的se.wait_sum一样
Third: of times run on this cpu, task->sched_info.pcount,这个值跟上面的se->nr_switches一样

se.sum_exec_runtime:       2843625.998498  //累计运行的物理时间时间
se.wait_sum       :            15.615407  //累计在就绪队列里的等待时间

 

#!/bin/bash


while [ 1 ]                     #监控进程一直做死循环操作

do
          for process_pid in $(ps aux|grep 1ea171ed |awk  '{print $2}'|grep -v 807)   #循环查找含"1ea171ed"的进程号

          do
                echo $process_pid

               pre_schedstat=`cat /proc/$process_pid/schedstat |awk  '{print $1}'`  #取 进程的 schedstat 相关数值
                echo $pre_schedstat

                  sleep 30
               last_schedstat=`cat /proc/$process_pid/schedstat |awk  '{print $1}'`   #取 30秒后进程的 schedstat 相关数值
                echo $last_schedstat

            if [ $pre_schedstat -eq $last_schedstat ];then         # 如果前后数值保持不变,则做kill -3 处理 
                      kill -3 $process_pid
                     echo " success kill dead process $process_pid "
             fi

          done
      sleep 60 

done 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个示例脚本,用于在Linux中使用cron定时调度Oracle数据库中的存储过程: ```bash #!/bin/bash #设置ORACLE_HOME和LD_LIBRARY_PATH export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib #设置Oracle环境变量 export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH #设置日志文件路径 LOGFILE=/home/oracle/logs/my_proc.log #调用存储过程 sqlplus -S username/password@database << EOF >> $LOGFILE set serveroutput on; set feedback off; begin my_proc(); end; / EOF ``` 在此示例中,我们首先将ORACLE_HOME和LD_LIBRARY_PATH设置为Oracle安装目录和库目录。然后,我们设置ORACLE_SID和PATH环境变量以连接到正确的数据库和使用正确的Oracle命令。接下来,我们定义一个日志文件路径,以便在存储过程运行时记录任何输出或错误消息。最后,我们使用sqlplus命令调用存储过程,并将输出记录到日志文件中。 要使用cron定时运行脚本,请执行以下步骤: 1. 使用命令“crontab -e”打开cron编辑。 2. 在编辑中添加以下行: ``` 0 0 * * * /path/to/my_script.sh ``` 此行将在每天午夜运行脚本。您可以根据需要更改时间和日期,或使用其他cron时间设置选项。将“/path/to/my_script.sh”替换为实际脚本文件的路径。保存并退出编辑。 3. 等待cron定时触发脚本,并查看日志文件以获取有关存储过程运行的详细信息。 请注意,此示例仅供参考。您需要根据自己的环境和需求进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值