有时候需要杀掉某些执行时间超时的进程,来规避异常进程造成的不良后果,脚本如下
#!/bin/bash
#设置超时时间,单位秒
timeout_sec=1800
#超时进程清单,结果为以换行结尾的pid,这里查询"python"进程超时时间大于指定秒数的进程
timeout_pid=`ps -eO etimes |awk '/python/{if ($2>timeout_sec) print $1}'`
#通过for循环对上述进程逐一kill
for pid in $timeout_pid;do
sudo kill $pid
done
以上特殊参数解释,etimes,可通过man手册查询,如下:
etime格式不方便对时间进行处理,只方便展示,所以我们这里选择用etimes,直接用单位秒来展示进程执行的秒数
将以上脚本加入到计划任务里,就可实现自动杀掉系统超时异常指定进程。