gpt4 book ai didi

linux - 如何每隔一小时杀死一次日志运行作业?

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:15 24 4
gpt4 key购买 nike

我想搜索所有运行时间超过一小时的作业。杀了他们。然后睡60分钟。再次搜索是否有作业运行超过 60 个?循环这个过程。

最佳答案

如果你想找到在你的 linux 机器上运行超过 60 分钟的进程的 PID,你可以使用一个非常简单和基本的 bash 脚本,如下所示:

#!/bin/sh
MIN=60
SEC=$((MIN*60))
ps -eo etimes=,pid= | while read sec pid; do
if [ ${sec} -gt ${SEC} ]; then
echo ${pid}
#kill -9 ${pid} # remove the # at the beginning of the line to actually kill those processes
fi
done

这将显示正在运行的进程的 PID,每行一个

假设您将此脚本命名为 60min.sh,您可以使用 cron 作业每 60 分钟运行一次:

0 * * * * /bin/bash /path_to/60min.sh

此 cron 作业将每 60 分钟(或每小时)运行一次您的 60min.sh 脚本

请记住,您可能会不小心杀死系统进程,并且您的系统可能会变得不稳定或无法使用,因此您将不得不重新启动。

如果您使用特定的 Linux 用户运行不同的进程,我建议您只搜索属于该用户的进程,而不是用户 root。

关于linux - 如何每隔一小时杀死一次日志运行作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42064880/

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