java - 如何编写 shell 脚本来获取给定的进程空闲时间?

标签 java linux bash shell ubuntu

我是 Linux 新手。我不知道 shell 脚本。我需要获取给定 Linux 进程的空闲进程时间。我正在编写一个 Java 程序。但是没有满足我需要的 Linux 命令。我如何编写可以执行此操作的 shell 脚本?然后我可以从 Java 执行这个脚本。

最佳答案

给你:

#! /bin/bash
# Assumptions:
# Process is attached to a tty.
#

[[ -z "$1" ]] && echo "Usage: $0 pid" && exit 1

[[ "$1" != +([0-9]) ]] && echo "$1 is not a valid pid" && exit 1

PID="$1"
W=$(which w)
PS=$(which ps)
SED=$(which sed)
AWK=$(which awk)
TTY=$($PS -o tty4 $PID)
TTNo=$(echo "$TTY" | $SED -e '/TTY/d')

TIME=$($W | $SED -n -e "/pts\/$TTNo/p" |  $AWK '{ print $5 }')

echo $PID has been idle for $TIME

关于java - 如何编写 shell 脚本来获取给定的进程空闲时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23971419/

相关文章:

Bash 脚本比较两个日期变量

java - Maven、spring、tomcat7 : What do I need in pom. xml 部署正确?

linux - 在 Linux 中以编程方式设置自定义文件夹/目录图标

linux - 在 Linux 中使用 C 将一个文件的精确统计参数应用到另一个文件

Java 应用程序 (jar) 在 Windows 中工作但在 Linux 中不工作(在 Eclipse 中制作)

php - 为什么结果等于 0,有时等于 1 - shell_exec('pgrep -f

linux - 在 shell 脚本中使用 sed 命令

java - 如何打印数组列表中的元素

java - 在 spring Boot 中使用 Dao 设计模式,而不是使用 spring data jpa 提供的存储库设计模式,这是一个好主意吗?

java - Libgdx 原生 TextInput 限制文本长度