我想搜索所有运行超过一小时的作业。杀了他们。然后睡60分钟。再次搜索是否有任何工作超过60?循环过程。
答案 0 :(得分:0)
如果你想在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。