我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Shell脚本获取进程的运行时间

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Shell脚本获取进程的运行时间

在我们的系统中,我曾写了一个脚本去定时更新一些repository,但偶尔会遇到问题,比如:git pull之时可能会卡在那里(可能由于某时刻的网络问题),它会阻碍后面的下一次更新。
所以我就在想,我今后启动这个脚本时,进行检查,如果上次运行的脚本还没结束,而且过了某个时间阀值,就把它及其子进程给kill掉。然后,我就需要写了一个可以查询某个进程已经运行了多少时间(以second为单位)的脚本。
注意:这并不是是指进程消耗的CPU时间,这里是当前时间减去进程启动时的时间,是这个时间段。

本来,ps本身也提供了选项来查询的,但是比较直观和形象(如 10:32这样的),不是用seconds为单位,并不方便在脚本中直接使用。ps中的关于进程时间的命令如下:


[root@jay-linux jay]# ps -p 4260 -o pid,start_time,etime,comm
PID START ELAPSED COMMAND
4260 Apr18 16-08:57:25 gnome-session

其中第三列的16-08:57:25就是进程运行的时间,为:16天8小时57分25秒。

我自己根据一些/proc文件系统中的信息,查询进程运行时间脚本分享如下:


#!/bin/bash
function show_elapsed_time()
{
user_hz=$(getconf CLK_TCK) #mostly it's 100 on x86/x86_64
pid=$1
jiffies=$(cat /proc/$pid/stat | cut -d" " -f22)
sys_uptime=$(cat /proc/uptime | cut -d" " -f1)
last_time=$(( ${sys_uptime%.*} - $jiffies/$user_hz ))
echo "the process $pid lasts for $last_time seconds."
}

if [ $# -ge 1 ];then
for pid in $@
do
show_elapsed_time $pid
done
fi

while read pid
do
show_elapsed_time $pid
done

执行过程和结果如下:

[root@jay-linux jay]# ./get_process_time.sh 4260
the process #4260 lasts for 1415417 seconds.

后续我再写两篇简单讲讲/proc/stat, /proc/$pid/stat, /proc/uptime吧。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Shell脚本获取进程的运行时间

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Shell脚本获取进程的运行时间

在我们的系统中,我曾写了一个脚本去定时更新一些repository,但偶尔会遇到问题,比如:git pull之时可能会卡在那里(可能由于某时刻的网络问题),它会阻碍后面的下一次更新。所以我就在想,我今后启动这个脚本时,进行检查,如果上次运行
2022-06-04

怎么用Shell脚本获取进程的运行时间

这篇文章主要介绍“怎么用Shell脚本获取进程的运行时间”,在日常操作中,相信很多人在怎么用Shell脚本获取进程的运行时间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚本获取进程的运行时间
2023-06-09

Shell脚本中获取进程ID的方法

提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为
2022-06-04

Shell脚本中怎么获取进程ID

今天就跟大家聊聊有关Shell脚本中怎么获取进程ID,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在某些情况下,你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的
2023-06-09

如何在shell脚本中获取进程ID

这篇文章给大家介绍如何在shell脚本中获取进程ID,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。shell脚本在执行时,会启动子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处
2023-06-28

获取两个日期间隔时间的shell脚本代码

#!/bin/sh# 获取所在季度的第一天,到昨天的日期间隔# link:www.lsjlt.com# date:2013/2/28 day=`date -d "1 days ago " "+%Y%m%d"`;year=`expr subs
2022-06-04

shell脚本获取两个日期间隔时间的方法

这篇文章主要介绍“shell脚本获取两个日期间隔时间的方法”,在日常操作中,相信很多人在shell脚本获取两个日期间隔时间的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”shell脚本获取两个日期间隔时间
2023-06-09

shell脚本实现多进程运行的方法示例

本文主要跟大家分享了shell脚本实现多进程运行的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 例子for ip in 192.168.56.{1..254} do(ping $ip -c 4 &>/dev/null;if
2022-06-04

使用shell脚本怎么实现多进程运行

这篇文章将为大家详细讲解有关使用shell脚本怎么实现多进程运行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。例子for ip in 192.168.56.{1..254}do ( ping
2023-06-09

Linux环境shell脚本获取时间的常用命令总结

本篇内容介绍了“Linux环境shell脚本获取时间的常用命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 相关概念Linux的系
2023-06-16

Shell脚本实现监视指定进程的运行状态

在之前的博客中,曾经写了自动化测试程序的实现方法,现在开发者需要知道被测试的进程(在此指运行在LINUX上的主进程的)在异常退出之前的进程的运行状态,例如内存的使用率、CPU的使用率等。 现用shell脚本实现指定进程的运行状态。直接上代码
2022-06-04

Shell脚本实现检测进程是否正在运行

这里简单介绍一个自己写的检测某个进程是否存在的bash小脚本。直接上代码。#!/bin/bashps_out=`ps -ef | grep $1 | grep -v 'grep' | grep -v $0`result=$(echo $ps
2022-06-04

shell自动拉取镜像并运行容器的shell脚本

目录情景再现开发环境开发过程情景再现 最近有一个部署服务,是具有绝对外网隔离的环境,不能构建自动化的发布服务,项目大体完工,但是改动的细节还是很多很小,存在一个频繁的发版情况。为了方便的发版,我只能基于shell构建一个简单的自动化脚本 开
2022-06-09

Shell获取当前正在执行脚本的绝对路径

1. pwd命令我们看看使用pwd命令能否获取当前正在执行脚本的绝对路径。该命令的作用是“print name of current/working directory”,真实含义是当前工作目录,并不是正在执行脚本的目录。xiaosi@Qu
2022-06-04

java程序的jar包怎么利用shell脚本运行

这篇文章将为大家详细讲解有关java程序的jar包怎么利用shell脚本运行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在UBuntu上部署项目的时候,我们往往通过一段shell来启动程序
2023-05-31

Python获取代码运行时间的几种方法

Python获取代码运行时间的几种方法1、方法一:#python 的标准库手册推荐在任何情况下尽量使用time.clock().#只计算了程序运行CPU的时间,返回值是浮点数import timestart =time.clock()#中间
2023-01-31

编程热搜

目录