gpt4 book ai didi

linux - 用于终止早于 x 时间的进程的 Bash 脚本 - 表达式中的语法错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:50 26 4
gpt4 key购买 nike

我正在尝试编写一个脚本,以根据 ID 终止超过 5 分钟的进程。我已经知道 $pid 中的进程 ID。

pid=1234

# 300 seconds = 5min
maximum_runtime=300

process_start_time=`ps -o lstart= -p $pid`
current_time=`date +%s`

let diff=${current_time}-${process_start_time}

if [ $diff -gt $maximum_runtime ]
then
kill -3 $pid
fi

这会导致错误:

./script.sh: line 9: let: 11:41:01: syntax error in expression (error token is ":41:01")

我使用了 this answer 中的一些代码.有什么解决办法吗?

最佳答案

pid=1234

# 300 seconds = 5min
maximum_runtime=300

process_start_time=`ps -o lstart= -p $pid`
current_time=`date` #got the tiem in same format

let diff="$(($(date -d "$current_time" '+%s') - $(date -d "$process_start_time" '+%s')))"
#result for diff in secconds, calculated using date tool

if [ $diff -gt $maximum_runtime ]
then
kill -3 $pid
fi

关于linux - 用于终止早于 x 时间的进程的 Bash 脚本 - 表达式中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57043126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com