[shell]关闭超时的进程
应同事要求,写了个shell, 主要功能为查找超时的进程,并关闭!
调用方式:
sh monter_shell_minute.sh shell_sleep
shell_sheep : 为进程名
30 : 为30分钟
从打印的日志能看出会多两个PID,不要惊慌,由于你执行时会带有 搜索的“程序名”,且执行时也会产生一个,所以会有两个pid(运行时间比较短)。
也可以在crontab 中写任务,每隔一段时间执行一次。。
#!/bin/bash # author : jackical
# lastchagetime : -- input_program=$
input_minue=$ sn_lines=`ps -ef|grep ${input_program}|grep -v grep|awk '{print $2}'` echo 'sn_lines:'
echo ${sn_lines} if [ "${sn_lines}" -eq "" ]
then
echo program has end!
else
#IFS=$'\n'
for i in ${sn_lines};
do
echo "line pid:" ${i}
run_info=`ps -eo pid,etime|grep ${i}|awk '{print $2}'`
run_time=${run_info/${i}/}
run_time2=${run_time/[[:space:]]/} #程序运行时间 echo "program run time:" ${run_time2}
echo "run_time2 length :" ${#run_time2} # 超过一天
if [ ${#run_time2} -gt -a $input_minue -lt ]
then
echo "已超时!"
cmd="kill -9 "$i
eval $cmd
echo $cmd
else
if [ ${#run_time2} -gt ]
then
echo "big 10"
cust_date=`expr $input_minue/`"-"`expr $input_minue%/` | awk '{printf("%02d\n",$0)}'":"`expr $input_minue%` | awk '{printf("%02d\n",$0)}'":00"
echo 'cust_date:' ${cust_date}
echo 'run_time2:' $run_time2
if [ ${cust_date}<${run_time2} ]
then
echo "超过一天,没有超时"
else
echo "超过一天,超时"
cmd="kill -9 "$i
eval $cmd
echo $cmd
fi
else
echo "small 10"
# 没有超过一天
run_time2=${run_time2//:/}
if [ ${#run_time2} -eq ]
then
run_time2=${run_time2::}
cust_date=`expr $input_minue/`""`expr $input_minue%`
else
cust_date=${input_minue}""
fi echo "cust_date:" $cust_date
echo "run_time2:" $run_time2
if [ ${cust_date} -lt ${run_time2} ]
then
echo "超时"
cmd="kill -9 "$i
eval $cmd
echo $cmd
else
echo "没有超时"
fi
fi fi done
fi
最后建议在linux 下新建个文件,再把内容贴进去。从本地windows环境下上传shell到linux 环境,会遇到“一脸懵B”的尴尬..
[shell]关闭超时的进程的更多相关文章
- Shell 关闭指定进程
例如要关闭jupyter-notebook这个进程: - | 说明:管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入. “ps -ef” 查看所有进程 “grep -v g ...
- shell关闭指定进程
例如要关闭jupyter-notebook这个进程: ps -ef | grep jupyter-notebook | grep -v grep | cut -c 9-15 | xargs kill ...
- C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
C# 强制关闭当前程序进程(完全Kill掉不留痕迹) /// <summary> /// 运行DOS命令 /// DOS关闭进程命令(ntsd -c q -p PID )PID为进程的ID ...
- 是什么在.NET程序关闭时阻碍进程的退出?
在平时使用软件或是.NET程序开发的过程中,我们有时会遇到程序关闭后但进程却没有退出的情况,这往往预示着代码中有问题存在,不能正确的在程序退出时停止代码执行和销毁资源.这个现象有时并不容易被察觉,但在 ...
- linux使用shell脚本停止java进程
使用shell脚本停止java进程,过程就是先查出对应的java进程pid,然后kill掉 - | 其中xxx是对应进程的关键词(即从查出的所有java进程中分辨出目标进程)
- Linux 两组信号对比(关闭和停止进程信号)
之前看信号的时候,没有太注意不同信号的对比.今天再次看到的时候,突然感觉对一些信号,非常相似,乃至非常容易混淆.今天周末就抽空总结一下. 一.关闭进程信号 常见的4中关闭进程信号是SIGKILL,SI ...
- C# 远程服务器 安装、卸载 Windows 服务,读取远程注册表,关闭杀掉远程进程
这里安装windows服务我们用sc命令,这里需要远程服务器IP,服务名称.显示名称.描述以及执行文件,安装后需要验证服务是否安装成功,验证方法可以直接调用ServiceController来查询服务 ...
- 如何优雅的退出/关闭/重启gunicorn进程
在工作中,会发现gunicorn启动的web服务,无论怎么使用kill -9 进程号都是无法杀死gunicorn,经过我一番百度和谷歌,发现想要删除gunicorn进程其实很简单. 1. 寻找mast ...
- Linux 下Tomcat的启动、关闭、杀死进程
Linux下Tomcat的启动.关闭.杀死进程 打开终端 cd /java/tomcat #执行 bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat ...
随机推荐
- java 编译器
1.编译器自动计算 源码: public class Test { int i = (1000+1)*5/10; } eclipse保存生成字节码文件,并用反编译工具打开: public class ...
- zTree设置异步加载后展开
//不能直接配置展开属性 因为没有数据,需要添加回调函数,异步加载成功展开 callback: { onAsyncSuccess: zTreeOnAsyncSuccess } //异步加载成功回调函数 ...
- Oracle EBS AR 收款核销行关联到事务处理
select ra.trx_number from ar_cash_receipts_all cr, ar_receivable_applications_all ar,ra_customer_trx ...
- JS 触发不同ifram控件,实现刷新,关闭标签(H+框架)
例: //前台页面事件处理模块var EventOperation = { Refresh: function (data_id) { var a = (window.top); var ele = ...
- 数据库复制 Nacicate Premium
之前都是“备份-还原”,抑或“导出-导入”.今天在将SqlServer中的数据导入到MySql中时发现了一个非常方便的方法,无需任何繁琐的配置和操作.废话少说,进入正题: 工具:Navicat Pre ...
- sudo实例--企业生产环境用户权限集中管理方案实例
根据角色的不同,给不同的用户分配不同的角色1.创建初级工程师3个,网络工程师1个,中级工程师1个,经理1个 # 批量创建用户 for user in chuji{01..03} net01 ...
- Exchange & Office 365最小混合部署
前言 这篇文章的主题是混合部署~ 混合使得本地组织和云环境像一个单一的.协作紧密的组织一样运作.当组织决定进行混合部署,达到本地Exchange Server和Office 365共存的状态时,就会面 ...
- 用HashSet存储自定义对象
案例 package cn.itcast_02; import java.util.HashSet; /* * 需求:存储自定义对象,并保证元素的唯一性 * 要求:如果两个对象的成员变量值都相同, ...
- 加速安装 Sharepoint 2013 SP1
第一次安装把人吓了一跳,居然花了5个半小时.想想有一大堆服务器要升级,不得不想想有什么加速的办法. 试了好几种方法,以下的办法最为简单 1:停止 IIS ADMIN,WWW 服务 2:停止所有 sha ...
- 用一个变量表示 ----------"序号,名称,价格"
goods = [{"name": "电脑", "price": 1999}, {"name": & ...