杀掉运行超过5分钟以上指定服务的进程

2024-04-13 05:08

本文主要是介绍杀掉运行超过5分钟以上指定服务的进程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需求背景: 

有个libreoffice服务,正常情况下运行几秒钟就会自动结束,但是有时候因为机器资源占用过多、或机器配置太低等原因会导致该进程僵死,这样下次调用该业务时会有影响,所以需要将该服务运行时间超过5分钟的进程杀掉。

思路:

1.通过ps获取该服务的PID和运行时间;

2.判断运行时间是否超过5分钟(这里转换为300秒了);

3.根据判断结果确定是否杀掉进程;

4.通过crontab定时执行该脚本;

脚本(kill_service.sh):

#!/usr/bin/bash
pro_name=libreoffice
username=`whoami`
interval=300
#pro=`ps -eo pid,user,etime,cmd | grep ${pro_name} |grep -v grep | awk '{pid=$1;user=$2;etime=$3 ; print pid,etime ; }'`
ps -eo pid,user,etime,cmd | grep ${pro_name} |grep -v grep | awk '{pid=$1;user=$2;etime=$3 ; print pid,etime ; }' | while read LINE
do#获取进程PIDpid=`echo $LINE | awk '{print $1}'`#获取程序运行时间,单位为秒,超过60分钟则设置为默认值99999999999999elapsed=`echo $LINE | awk -F: 'BEGIN {time=99999999999999;}{if(NF>=3){print time;}else if(NF>=2){time=$(NF-1)*60+$NF;print time}else{print "error format"}}'`#判断程序运行的时间是否超过指定周期$intervalif [ $elapsed -ge $interval ];thenecho "$LINE"kill -9 $pidfi
done

定时任务:

#每隔2分钟执行一次
*/2 * * * * sh /root/kill_service.sh

 

这篇关于杀掉运行超过5分钟以上指定服务的进程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/899207

相关文章

C#通过进程调用外部应用的实现示例

《C#通过进程调用外部应用的实现示例》本文主要介绍了C#通过进程调用外部应用的实现示例,以WINFORM应用程序为例,在C#应用程序中调用PYTHON程序,具有一定的参考价值,感兴趣的可以了解一下... 目录窗口程序类进程信息类 系统设置类 以WINFORM应用程序为例,在C#应用程序中调用python程序

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

Spring Boot项目打包和运行的操作方法

《SpringBoot项目打包和运行的操作方法》SpringBoot应用内嵌了Web服务器,所以基于SpringBoot开发的web应用也可以独立运行,无须部署到其他Web服务器中,下面以打包dem... 目录一、打包为JAR包并运行1.打包为可执行的 JAR 包2.运行 JAR 包二、打包为WAR包并运行

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Pandas利用主表更新子表指定列小技巧

《Pandas利用主表更新子表指定列小技巧》本文主要介绍了Pandas利用主表更新子表指定列小技巧,通过创建主表和子表的DataFrame对象,并使用映射字典进行数据关联和更新,实现了从主表到子表的同... 目录一、前言二、基本案例1. 创建主表数据2. 创建映射字典3. 创建子表数据4. 更新子表的 zb

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序